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

[incubator-tvm-site] branch asf-site updated: Docs build at Tue Jul 28 12:10:53 PDT 2020

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

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


The following commit(s) were added to refs/heads/asf-site by this push:
     new c9dd76f  Docs build at Tue Jul 28 12:10:53 PDT 2020
c9dd76f is described below

commit c9dd76fe591ad551985d3be6ecfb689a4633298f
Author: tqchen <tq...@octoml.ai>
AuthorDate: Tue Jul 28 12:10:54 2020 -0700

    Docs build at Tue Jul 28 12:10:53 PDT 2020
---
 .../relay_quick_start.ipynb                        |    0
 .../tensor_expr_get_started.py                     |    0
 .../cross_compilation_and_rpc.ipynb                |    0
 .../relay_quick_start.py                           |    0
 .../tensor_expr_get_started.ipynb                  |    0
 .../cross_compilation_and_rpc.py                   |    0
 docs/_sources/api/links.rst.txt                    |    4 +-
 .../_sources/{ => dev}/frontend/tensorflow.rst.txt |    0
 docs/_sources/dev/how_to.rst.txt                   |   31 +
 docs/_sources/dev/index.rst.txt                    |   16 +-
 docs/_sources/dev/virtual_machine.rst.txt          |   11 +-
 docs/_sources/index.rst.txt                        |   50 +-
 .../tutorials/autotvm/sg_execution_times.rst.txt   |   16 +-
 .../tutorials/autotvm/tune_conv2d_cuda.rst.txt     |   42 +-
 .../tutorials/autotvm/tune_simple_template.rst.txt |   20 +-
 .../tutorials/cross_compilation_and_rpc.rst.txt    |  340 --
 .../tutorials/dev/sg_execution_times.rst.txt       |    6 +-
 .../frontend/deploy_model_on_android.rst.txt       |    2 +-
 .../tutorials/frontend/deploy_prequantized.rst.txt |    4 +-
 .../frontend/deploy_prequantized_tflite.rst.txt    |    4 +-
 .../tutorials/frontend/deploy_ssd_gluoncv.rst.txt  |   78 +-
 docs/_sources/tutorials/frontend/from_onnx.rst.txt |    2 +-
 .../tutorials/frontend/from_tensorflow.rst.txt     |    4 +-
 .../tutorials/frontend/sg_execution_times.rst.txt  |   38 +-
 .../get_started/cross_compilation_and_rpc.rst.txt  |  340 ++
 .../get_started/relay_quick_start.rst.txt          |  366 ++
 .../get_started/sg_execution_times.rst.txt         |   12 +
 .../get_started/tensor_expr_get_started.rst.txt    |  476 ++
 docs/_sources/tutorials/index.rst.txt              |   34 +-
 docs/_sources/tutorials/language/reduction.rst.txt |    4 +-
 .../tutorials/language/schedule_primitives.rst.txt |   14 +-
 .../tutorials/language/sg_execution_times.rst.txt  |   18 +-
 docs/_sources/tutorials/language/tensorize.rst.txt |    8 +-
 .../tutorials/language/tuple_inputs.rst.txt        |   30 +-
 .../tutorials/micro/sg_execution_times.rst.txt     |    4 +-
 .../tutorials/optimize/opt_conv_cuda.rst.txt       |    2 +-
 .../tutorials/optimize/opt_conv_tensorcore.rst.txt |    6 +-
 docs/_sources/tutorials/optimize/opt_gemm.rst.txt  |   20 +-
 .../tutorials/optimize/sg_execution_times.rst.txt  |   10 +-
 docs/_sources/tutorials/relay_quick_start.rst.txt  |  366 --
 docs/_sources/tutorials/sg_execution_times.rst.txt |   12 -
 .../tutorials/tensor_expr_get_started.rst.txt      |  476 --
 docs/_sources/tutorials/topi/intro_topi.rst.txt    |    2 +-
 .../tutorials/topi/sg_execution_times.rst.txt      |    4 +-
 .../tutorials/autotvm/sg_execution_times.rst.txt   |    4 +-
 .../vta/tutorials/autotvm/tune_relay_vta.rst.txt   |    2 +-
 .../frontend/deploy_classification.rst.txt         |    4 +-
 .../tutorials/frontend/deploy_detection.rst.txt    |    2 +-
 .../tutorials/frontend/sg_execution_times.rst.txt  |    6 +-
 .../vta/tutorials/optimize/convolution_opt.rst.txt |    8 +-
 .../tutorials/optimize/matrix_multiply_opt.rst.txt |    4 +-
 .../tutorials/optimize/sg_execution_times.rst.txt  |    6 +-
 .../vta/tutorials/sg_execution_times.rst.txt       |    6 +-
 docs/api/doxygen/annotated.html                    | 1270 +++--
 docs/api/doxygen/attr__registry__map_8h.html       |    2 +-
 .../doxygen/attr__registry__map_8h__dep__incl.svg  |  800 ++-
 docs/api/doxygen/auto__schedule_8h.html            |  143 +
 docs/api/doxygen/auto__schedule_8h__incl.svg       | 1276 +++++
 docs/api/doxygen/auto__schedule_8h_source.html     |  123 +
 docs/api/doxygen/bytecode_8h.html                  |  183 +
 docs/api/doxygen/bytecode_8h__dep__incl.svg        |   52 +
 docs/api/doxygen/bytecode_8h__incl.svg             |  126 +
 docs/api/doxygen/bytecode_8h_source.html           |  167 +
 docs/api/doxygen/c__runtime__api_8h.html           |    2 +-
 docs/api/doxygen/c__runtime__api_8h__dep__incl.svg | 1739 +++---
 docs/api/doxygen/classes.html                      |  303 +-
 ...1auto__scheduler_1_1AccessAnalyzer-members.html |  116 +
 ...sstvm_1_1auto__scheduler_1_1AccessAnalyzer.html |  482 ++
 ...o__scheduler_1_1AccessAnalyzerNode-members.html |  116 +
 ...m_1_1auto__scheduler_1_1AccessAnalyzerNode.html |  349 ++
 ...cheduler_1_1AccessAnalyzerNode__coll__graph.svg |   59 +
 ...duler_1_1AccessAnalyzerNode__inherit__graph.svg |   45 +
 ...o__scheduler_1_1AccessAnalyzer__coll__graph.svg |   48 +
 ...scheduler_1_1AccessAnalyzer__inherit__graph.svg |   48 +
 ...1auto__scheduler_1_1AnnotationStep-members.html |  109 +
 ...sstvm_1_1auto__scheduler_1_1AnnotationStep.html |  251 +
 ...o__scheduler_1_1AnnotationStepNode-members.html |  116 +
 ...m_1_1auto__scheduler_1_1AnnotationStepNode.html |  399 ++
 ...cheduler_1_1AnnotationStepNode__coll__graph.svg |   64 +
 ...duler_1_1AnnotationStepNode__inherit__graph.svg |   64 +
 ...o__scheduler_1_1AnnotationStep__coll__graph.svg |   59 +
 ...scheduler_1_1AnnotationStep__inherit__graph.svg |   59 +
 ...vm_1_1auto__scheduler_1_1AttachMap-members.html |  111 +
 .../classtvm_1_1auto__scheduler_1_1AttachMap.html  |  334 ++
 ..._1auto__scheduler_1_1AttachMapNode-members.html |  109 +
 ...asstvm_1_1auto__scheduler_1_1AttachMapNode.html |  235 +
 ...to__scheduler_1_1AttachMapNode__coll__graph.svg |   39 +
 ..._scheduler_1_1AttachMapNode__inherit__graph.svg |   39 +
 ..._1auto__scheduler_1_1AttachMap__coll__graph.svg |   44 +
 ...uto__scheduler_1_1AttachMap__inherit__graph.svg |   44 +
 ..._1_1auto__scheduler_1_1BuildResult-members.html |  107 +
 ...classtvm_1_1auto__scheduler_1_1BuildResult.html |  227 +
 ...auto__scheduler_1_1BuildResultNode-members.html |  113 +
 ...stvm_1_1auto__scheduler_1_1BuildResultNode.html |  302 ++
 ...__scheduler_1_1BuildResultNode__coll__graph.svg |  152 +
 ...cheduler_1_1BuildResultNode__inherit__graph.svg |   43 +
 ...auto__scheduler_1_1BuildResult__coll__graph.svg |   39 +
 ...o__scheduler_1_1BuildResult__inherit__graph.svg |   39 +
 ..._1auto__scheduler_1_1CacheReadStep-members.html |  109 +
 ...asstvm_1_1auto__scheduler_1_1CacheReadStep.html |  251 +
 ...to__scheduler_1_1CacheReadStepNode-members.html |  116 +
 ...vm_1_1auto__scheduler_1_1CacheReadStepNode.html |  426 ++
 ...scheduler_1_1CacheReadStepNode__coll__graph.svg |  173 +
 ...eduler_1_1CacheReadStepNode__inherit__graph.svg |   64 +
 ...to__scheduler_1_1CacheReadStep__coll__graph.svg |   59 +
 ..._scheduler_1_1CacheReadStep__inherit__graph.svg |   59 +
 ...1auto__scheduler_1_1CacheWriteStep-members.html |  109 +
 ...sstvm_1_1auto__scheduler_1_1CacheWriteStep.html |  244 +
 ...o__scheduler_1_1CacheWriteStepNode-members.html |  115 +
 ...m_1_1auto__scheduler_1_1CacheWriteStepNode.html |  409 ++
 ...cheduler_1_1CacheWriteStepNode__coll__graph.svg |  158 +
 ...duler_1_1CacheWriteStepNode__inherit__graph.svg |   63 +
 ...o__scheduler_1_1CacheWriteStep__coll__graph.svg |   59 +
 ...scheduler_1_1CacheWriteStep__inherit__graph.svg |   59 +
 ..._1auto__scheduler_1_1ComputeAtStep-members.html |  109 +
 ...asstvm_1_1auto__scheduler_1_1ComputeAtStep.html |  251 +
 ...to__scheduler_1_1ComputeAtStepNode-members.html |  116 +
 ...vm_1_1auto__scheduler_1_1ComputeAtStepNode.html |  399 ++
 ...scheduler_1_1ComputeAtStepNode__coll__graph.svg |   64 +
 ...eduler_1_1ComputeAtStepNode__inherit__graph.svg |   64 +
 ...to__scheduler_1_1ComputeAtStep__coll__graph.svg |   59 +
 ..._scheduler_1_1ComputeAtStep__inherit__graph.svg |   59 +
 ...m_1_1auto__scheduler_1_1ComputeDAG-members.html |  112 +
 .../classtvm_1_1auto__scheduler_1_1ComputeDAG.html |  351 ++
 ...1auto__scheduler_1_1ComputeDAGNode-members.html |  113 +
 ...sstvm_1_1auto__scheduler_1_1ComputeDAGNode.html |  302 ++
 ...o__scheduler_1_1ComputeDAGNode__coll__graph.svg |  147 +
 ...scheduler_1_1ComputeDAGNode__inherit__graph.svg |   43 +
 ...1auto__scheduler_1_1ComputeDAG__coll__graph.svg |   45 +
 ...to__scheduler_1_1ComputeDAG__inherit__graph.svg |   45 +
 ...to__scheduler_1_1ComputeInlineStep-members.html |  109 +
 ...vm_1_1auto__scheduler_1_1ComputeInlineStep.html |  241 +
 ...scheduler_1_1ComputeInlineStepNode-members.html |  114 +
 ..._1auto__scheduler_1_1ComputeInlineStepNode.html |  364 ++
 ...duler_1_1ComputeInlineStepNode__coll__graph.svg |   62 +
 ...er_1_1ComputeInlineStepNode__inherit__graph.svg |   62 +
 ...scheduler_1_1ComputeInlineStep__coll__graph.svg |   59 +
 ...eduler_1_1ComputeInlineStep__inherit__graph.svg |   59 +
 ...auto__scheduler_1_1ComputeRootStep-members.html |  109 +
 ...stvm_1_1auto__scheduler_1_1ComputeRootStep.html |  241 +
 ...__scheduler_1_1ComputeRootStepNode-members.html |  114 +
 ..._1_1auto__scheduler_1_1ComputeRootStepNode.html |  365 ++
 ...heduler_1_1ComputeRootStepNode__coll__graph.svg |   62 +
 ...uler_1_1ComputeRootStepNode__inherit__graph.svg |   62 +
 ...__scheduler_1_1ComputeRootStep__coll__graph.svg |   59 +
 ...cheduler_1_1ComputeRootStep__inherit__graph.svg |   59 +
 ..._scheduler_1_1FollowFusedSplitStep-members.html |  109 +
 ...1_1auto__scheduler_1_1FollowFusedSplitStep.html |  265 +
 ...eduler_1_1FollowFusedSplitStepNode-members.html |  119 +
 ...uto__scheduler_1_1FollowFusedSplitStepNode.html |  477 ++
 ...er_1_1FollowFusedSplitStepNode__coll__graph.svg |   81 +
 ...1_1FollowFusedSplitStepNode__inherit__graph.svg |   67 +
 ...eduler_1_1FollowFusedSplitStep__coll__graph.svg |   59 +
 ...ler_1_1FollowFusedSplitStep__inherit__graph.svg |   59 +
 ...auto__scheduler_1_1FollowSplitStep-members.html |  109 +
 ...stvm_1_1auto__scheduler_1_1FollowSplitStep.html |  258 +
 ...__scheduler_1_1FollowSplitStepNode-members.html |  118 +
 ..._1_1auto__scheduler_1_1FollowSplitStepNode.html |  468 ++
 ...heduler_1_1FollowSplitStepNode__coll__graph.svg |   66 +
 ...uler_1_1FollowSplitStepNode__inherit__graph.svg |   66 +
 ...__scheduler_1_1FollowSplitStep__coll__graph.svg |   59 +
 ...cheduler_1_1FollowSplitStep__inherit__graph.svg |   59 +
 ...tvm_1_1auto__scheduler_1_1FuseStep-members.html |  109 +
 .../classtvm_1_1auto__scheduler_1_1FuseStep.html   |  244 +
 ...1_1auto__scheduler_1_1FuseStepNode-members.html |  115 +
 ...lasstvm_1_1auto__scheduler_1_1FuseStepNode.html |  384 ++
 ...uto__scheduler_1_1FuseStepNode__coll__graph.svg |   77 +
 ...__scheduler_1_1FuseStepNode__inherit__graph.svg |   63 +
 ...1_1auto__scheduler_1_1FuseStep__coll__graph.svg |   59 +
 ...auto__scheduler_1_1FuseStep__inherit__graph.svg |   59 +
 ...1auto__scheduler_1_1HardwareParams-members.html |  108 +
 ...sstvm_1_1auto__scheduler_1_1HardwareParams.html |  231 +
 ...o__scheduler_1_1HardwareParamsNode-members.html |  117 +
 ...m_1_1auto__scheduler_1_1HardwareParamsNode.html |  404 ++
 ...cheduler_1_1HardwareParamsNode__coll__graph.svg |   48 +
 ...duler_1_1HardwareParamsNode__inherit__graph.svg |   48 +
 ...o__scheduler_1_1HardwareParams__coll__graph.svg |   41 +
 ...scheduler_1_1HardwareParams__inherit__graph.svg |   41 +
 ...tvm_1_1auto__scheduler_1_1Iterator-members.html |  107 +
 .../classtvm_1_1auto__scheduler_1_1Iterator.html   |  220 +
 ...1_1auto__scheduler_1_1IteratorNode-members.html |  112 +
 ...lasstvm_1_1auto__scheduler_1_1IteratorNode.html |  285 +
 ...uto__scheduler_1_1IteratorNode__coll__graph.svg |  171 +
 ...__scheduler_1_1IteratorNode__inherit__graph.svg |   42 +
 ...1_1auto__scheduler_1_1Iterator__coll__graph.svg |   39 +
 ...auto__scheduler_1_1Iterator__inherit__graph.svg |   39 +
 ...1_1auto__scheduler_1_1LocalBuilder-members.html |  108 +
 ...lasstvm_1_1auto__scheduler_1_1LocalBuilder.html |  216 +
 ...uto__scheduler_1_1LocalBuilderNode-members.html |  112 +
 ...tvm_1_1auto__scheduler_1_1LocalBuilderNode.html |  270 +
 ..._scheduler_1_1LocalBuilderNode__coll__graph.svg |  155 +
 ...heduler_1_1LocalBuilderNode__inherit__graph.svg |   60 +
 ...uto__scheduler_1_1LocalBuilder__coll__graph.svg |   58 +
 ...__scheduler_1_1LocalBuilder__inherit__graph.svg |   58 +
 ..._1_1auto__scheduler_1_1LocalRunner-members.html |  108 +
 ...classtvm_1_1auto__scheduler_1_1LocalRunner.html |  230 +
 ...auto__scheduler_1_1LocalRunnerNode-members.html |  114 +
 ...stvm_1_1auto__scheduler_1_1LocalRunnerNode.html |  268 +
 ...__scheduler_1_1LocalRunnerNode__coll__graph.svg |   62 +
 ...cheduler_1_1LocalRunnerNode__inherit__graph.svg |   62 +
 ...auto__scheduler_1_1LocalRunner__coll__graph.svg |   58 +
 ...o__scheduler_1_1LocalRunner__inherit__graph.svg |   58 +
 ...auto__scheduler_1_1MeasureCallback-members.html |  106 +
 ...stvm_1_1auto__scheduler_1_1MeasureCallback.html |  167 +
 ...__scheduler_1_1MeasureCallbackNode-members.html |  108 +
 ..._1_1auto__scheduler_1_1MeasureCallbackNode.html |  242 +
 ...heduler_1_1MeasureCallbackNode__coll__graph.svg |   38 +
 ...uler_1_1MeasureCallbackNode__inherit__graph.svg |   58 +
 ...__scheduler_1_1MeasureCallback__coll__graph.svg |   38 +
 ...cheduler_1_1MeasureCallback__inherit__graph.svg |   58 +
 ...1_1auto__scheduler_1_1MeasureInput-members.html |  107 +
 ...lasstvm_1_1auto__scheduler_1_1MeasureInput.html |  206 +
 ...uto__scheduler_1_1MeasureInputNode-members.html |  111 +
 ...tvm_1_1auto__scheduler_1_1MeasureInputNode.html |  271 +
 ..._scheduler_1_1MeasureInputNode__coll__graph.svg |  108 +
 ...heduler_1_1MeasureInputNode__inherit__graph.svg |   41 +
 ...uto__scheduler_1_1MeasureInput__coll__graph.svg |   39 +
 ...__scheduler_1_1MeasureInput__inherit__graph.svg |   39 +
 ..._1auto__scheduler_1_1MeasureResult-members.html |  107 +
 ...asstvm_1_1auto__scheduler_1_1MeasureResult.html |  227 +
 ...to__scheduler_1_1MeasureResultNode-members.html |  114 +
 ...vm_1_1auto__scheduler_1_1MeasureResultNode.html |  322 ++
 ...scheduler_1_1MeasureResultNode__coll__graph.svg |  153 +
 ...eduler_1_1MeasureResultNode__inherit__graph.svg |   44 +
 ...to__scheduler_1_1MeasureResult__coll__graph.svg |   39 +
 ..._scheduler_1_1MeasureResult__inherit__graph.svg |   39 +
 ...1auto__scheduler_1_1ProgramBuilder-members.html |  106 +
 ...sstvm_1_1auto__scheduler_1_1ProgramBuilder.html |  167 +
 ...o__scheduler_1_1ProgramBuilderNode-members.html |  110 +
 ...m_1_1auto__scheduler_1_1ProgramBuilderNode.html |  274 +
 ...cheduler_1_1ProgramBuilderNode__coll__graph.svg |   40 +
 ...duler_1_1ProgramBuilderNode__inherit__graph.svg |   60 +
 ...o__scheduler_1_1ProgramBuilder__coll__graph.svg |   38 +
 ...scheduler_1_1ProgramBuilder__inherit__graph.svg |   58 +
 ...auto__scheduler_1_1ProgramMeasurer-members.html |  107 +
 ...stvm_1_1auto__scheduler_1_1ProgramMeasurer.html |  227 +
 ...__scheduler_1_1ProgramMeasurerNode-members.html |  121 +
 ..._1_1auto__scheduler_1_1ProgramMeasurerNode.html |  510 ++
 ...heduler_1_1ProgramMeasurerNode__coll__graph.svg |  124 +
 ...uler_1_1ProgramMeasurerNode__inherit__graph.svg |   52 +
 ...__scheduler_1_1ProgramMeasurer__coll__graph.svg |   39 +
 ...cheduler_1_1ProgramMeasurer__inherit__graph.svg |   39 +
 ..._1auto__scheduler_1_1ProgramRunner-members.html |  106 +
 ...asstvm_1_1auto__scheduler_1_1ProgramRunner.html |  167 +
 ...to__scheduler_1_1ProgramRunnerNode-members.html |  113 +
 ...vm_1_1auto__scheduler_1_1ProgramRunnerNode.html |  332 ++
 ...scheduler_1_1ProgramRunnerNode__coll__graph.svg |   43 +
 ...eduler_1_1ProgramRunnerNode__inherit__graph.svg |   86 +
 ...to__scheduler_1_1ProgramRunner__coll__graph.svg |   38 +
 ..._scheduler_1_1ProgramRunner__inherit__graph.svg |   78 +
 ...vm_1_1auto__scheduler_1_1RPCRunner-members.html |  108 +
 .../classtvm_1_1auto__scheduler_1_1RPCRunner.html  |  265 +
 ..._1auto__scheduler_1_1RPCRunnerNode-members.html |  119 +
 ...asstvm_1_1auto__scheduler_1_1RPCRunnerNode.html |  354 ++
 ...to__scheduler_1_1RPCRunnerNode__coll__graph.svg |  162 +
 ..._scheduler_1_1RPCRunnerNode__inherit__graph.svg |   67 +
 ..._1auto__scheduler_1_1RPCRunner__coll__graph.svg |   58 +
 ...uto__scheduler_1_1RPCRunner__inherit__graph.svg |   58 +
 ...1_1auto__scheduler_1_1RecordReader-members.html |  107 +
 ...lasstvm_1_1auto__scheduler_1_1RecordReader.html |  203 +
 ...uto__scheduler_1_1RecordReaderNode-members.html |  112 +
 ...tvm_1_1auto__scheduler_1_1RecordReaderNode.html |  321 ++
 ..._scheduler_1_1RecordReaderNode__coll__graph.svg |  137 +
 ...heduler_1_1RecordReaderNode__inherit__graph.svg |   42 +
 ...uto__scheduler_1_1RecordReader__coll__graph.svg |   39 +
 ...__scheduler_1_1RecordReader__inherit__graph.svg |   39 +
 ...1_1auto__scheduler_1_1RecordToFile-members.html |  108 +
 ...lasstvm_1_1auto__scheduler_1_1RecordToFile.html |  206 +
 ...uto__scheduler_1_1RecordToFileNode-members.html |  110 +
 ...tvm_1_1auto__scheduler_1_1RecordToFileNode.html |  269 +
 ..._scheduler_1_1RecordToFileNode__coll__graph.svg |  153 +
 ...heduler_1_1RecordToFileNode__inherit__graph.svg |   58 +
 ...uto__scheduler_1_1RecordToFile__coll__graph.svg |   58 +
 ...__scheduler_1_1RecordToFile__inherit__graph.svg |   58 +
 ..._1_1auto__scheduler_1_1ReorderStep-members.html |  109 +
 ...classtvm_1_1auto__scheduler_1_1ReorderStep.html |  244 +
 ...auto__scheduler_1_1ReorderStepNode-members.html |  115 +
 ...stvm_1_1auto__scheduler_1_1ReorderStepNode.html |  381 ++
 ...__scheduler_1_1ReorderStepNode__coll__graph.svg |   77 +
 ...cheduler_1_1ReorderStepNode__inherit__graph.svg |   63 +
 ...auto__scheduler_1_1ReorderStep__coll__graph.svg |   59 +
 ...o__scheduler_1_1ReorderStep__inherit__graph.svg |   59 +
 ...1auto__scheduler_1_1SearchCallback-members.html |  106 +
 ...sstvm_1_1auto__scheduler_1_1SearchCallback.html |  167 +
 ...o__scheduler_1_1SearchCallbackNode-members.html |  108 +
 ...m_1_1auto__scheduler_1_1SearchCallbackNode.html |  222 +
 ...cheduler_1_1SearchCallbackNode__coll__graph.svg |   38 +
 ...duler_1_1SearchCallbackNode__inherit__graph.svg |   38 +
 ...o__scheduler_1_1SearchCallback__coll__graph.svg |   38 +
 ...scheduler_1_1SearchCallback__inherit__graph.svg |   38 +
 ...1_1auto__scheduler_1_1SearchPolicy-members.html |  106 +
 ...lasstvm_1_1auto__scheduler_1_1SearchPolicy.html |  167 +
 ...uto__scheduler_1_1SearchPolicyNode-members.html |  115 +
 ...tvm_1_1auto__scheduler_1_1SearchPolicyNode.html |  439 ++
 ..._scheduler_1_1SearchPolicyNode__coll__graph.svg |   79 +
 ...heduler_1_1SearchPolicyNode__inherit__graph.svg |   45 +
 ...uto__scheduler_1_1SearchPolicy__coll__graph.svg |   38 +
 ...__scheduler_1_1SearchPolicy__inherit__graph.svg |   38 +
 ...m_1_1auto__scheduler_1_1SearchTask-members.html |  107 +
 .../classtvm_1_1auto__scheduler_1_1SearchTask.html |  227 +
 ...1auto__scheduler_1_1SearchTaskNode-members.html |  113 +
 ...sstvm_1_1auto__scheduler_1_1SearchTaskNode.html |  302 ++
 ...o__scheduler_1_1SearchTaskNode__coll__graph.svg |  232 +
 ...scheduler_1_1SearchTaskNode__inherit__graph.svg |   43 +
 ...1auto__scheduler_1_1SearchTask__coll__graph.svg |   39 +
 ...to__scheduler_1_1SearchTask__inherit__graph.svg |   39 +
 ...vm_1_1auto__scheduler_1_1SplitStep-members.html |  109 +
 .../classtvm_1_1auto__scheduler_1_1SplitStep.html  |  265 +
 ..._1auto__scheduler_1_1SplitStepNode-members.html |  118 +
 ...asstvm_1_1auto__scheduler_1_1SplitStepNode.html |  435 ++
 ...to__scheduler_1_1SplitStepNode__coll__graph.svg |   95 +
 ..._scheduler_1_1SplitStepNode__inherit__graph.svg |   66 +
 ..._1auto__scheduler_1_1SplitStep__coll__graph.svg |   59 +
 ...uto__scheduler_1_1SplitStep__inherit__graph.svg |   59 +
 ...asstvm_1_1auto__scheduler_1_1Stage-members.html |  109 +
 .../classtvm_1_1auto__scheduler_1_1Stage.html      |  280 +
 ...vm_1_1auto__scheduler_1_1StageNode-members.html |  113 +
 .../classtvm_1_1auto__scheduler_1_1StageNode.html  |  302 ++
 ..._1auto__scheduler_1_1StageNode__coll__graph.svg |  111 +
 ...uto__scheduler_1_1StageNode__inherit__graph.svg |   43 +
 ...vm_1_1auto__scheduler_1_1Stage__coll__graph.svg |   42 +
 ...1_1auto__scheduler_1_1Stage__inherit__graph.svg |   42 +
 ...asstvm_1_1auto__scheduler_1_1State-members.html |  124 +
 .../classtvm_1_1auto__scheduler_1_1State.html      |  892 +++
 ...vm_1_1auto__scheduler_1_1StateNode-members.html |  113 +
 .../classtvm_1_1auto__scheduler_1_1StateNode.html  |  302 ++
 ..._1auto__scheduler_1_1StateNode__coll__graph.svg |  126 +
 ...uto__scheduler_1_1StateNode__inherit__graph.svg |   43 +
 ...vm_1_1auto__scheduler_1_1State__coll__graph.svg |   47 +
 ...1_1auto__scheduler_1_1State__inherit__graph.svg |   47 +
 ...lasstvm_1_1auto__scheduler_1_1Step-members.html |  106 +
 .../classtvm_1_1auto__scheduler_1_1Step.html       |  167 +
 ...tvm_1_1auto__scheduler_1_1StepNode-members.html |  109 +
 .../classtvm_1_1auto__scheduler_1_1StepNode.html   |  245 +
 ...1_1auto__scheduler_1_1StepNode__coll__graph.svg |   39 +
 ...auto__scheduler_1_1StepNode__inherit__graph.svg |  314 ++
 ...tvm_1_1auto__scheduler_1_1Step__coll__graph.svg |   38 +
 ..._1_1auto__scheduler_1_1Step__inherit__graph.svg |  269 +
 ..._1auto__scheduler_1_1TuningOptions-members.html |  107 +
 ...asstvm_1_1auto__scheduler_1_1TuningOptions.html |  248 +
 ...to__scheduler_1_1TuningOptionsNode-members.html |  116 +
 ...vm_1_1auto__scheduler_1_1TuningOptionsNode.html |  353 ++
 ...scheduler_1_1TuningOptionsNode__coll__graph.svg |  133 +
 ...eduler_1_1TuningOptionsNode__inherit__graph.svg |   46 +
 ...to__scheduler_1_1TuningOptions__coll__graph.svg |   39 +
 ..._scheduler_1_1TuningOptions__inherit__graph.svg |   39 +
 ...tvm_1_1relay_1_1InterpreterClosure-members.html |    4 +-
 .../classtvm_1_1relay_1_1InterpreterClosure.html   |   14 +-
 ..._1_1relay_1_1InterpreterClosureObj-members.html |    6 +-
 ...classtvm_1_1relay_1_1InterpreterClosureObj.html |   24 +-
 ...relay_1_1InterpreterClosureObj__coll__graph.svg |    4 +-
 ...ay_1_1InterpreterClosureObj__inherit__graph.svg |    4 +-
 ...1_1relay_1_1InterpreterClosure__coll__graph.svg |    4 +-
 ...relay_1_1InterpreterClosure__inherit__graph.svg |    4 +-
 ...stvm_1_1relay_1_1RecClosureObj__coll__graph.svg |    4 +-
 .../classtvm_1_1runtime_1_1Closure-members.html    |  125 +
 .../doxygen/classtvm_1_1runtime_1_1Closure.html    |  228 +
 .../classtvm_1_1runtime_1_1ClosureObj-members.html |  136 +
 .../doxygen/classtvm_1_1runtime_1_1ClosureObj.html |  290 +
 ...sstvm_1_1runtime_1_1ClosureObj__coll__graph.svg |   75 +
 ...vm_1_1runtime_1_1ClosureObj__inherit__graph.svg |  111 +
 ...classtvm_1_1runtime_1_1Closure__coll__graph.svg |   84 +
 ...sstvm_1_1runtime_1_1Closure__inherit__graph.svg |   94 +
 .../doxygen/classtvm_1_1runtime_1_1ModuleNode.html |    2 +-
 ...vm_1_1runtime_1_1ModuleNode__inherit__graph.svg |  227 +-
 .../api/doxygen/classtvm_1_1runtime_1_1Object.html |    2 +-
 .../doxygen/classtvm_1_1runtime_1_1ObjectRef.html  |    2 +-
 ...tvm_1_1runtime_1_1ObjectRef__inherit__graph.svg |  353 +-
 ...asstvm_1_1runtime_1_1Object__inherit__graph.svg |  498 +-
 ...stvm_1_1runtime_1_1vm_1_1Allocator-members.html |  112 +
 .../classtvm_1_1runtime_1_1vm_1_1Allocator.html    |  365 ++
 ..._1_1runtime_1_1vm_1_1Allocator__coll__graph.svg |   28 +
 ...asstvm_1_1runtime_1_1vm_1_1Closure-members.html |  125 -
 .../classtvm_1_1runtime_1_1vm_1_1Closure.html      |  228 -
 ...tvm_1_1runtime_1_1vm_1_1ClosureObj-members.html |  136 -
 .../classtvm_1_1runtime_1_1vm_1_1ClosureObj.html   |  290 -
 ...1_1runtime_1_1vm_1_1ClosureObj__coll__graph.svg |   75 -
 ...runtime_1_1vm_1_1ClosureObj__inherit__graph.svg |  110 -
 ...vm_1_1runtime_1_1vm_1_1Closure__coll__graph.svg |   84 -
 ...1_1runtime_1_1vm_1_1Closure__inherit__graph.svg |   94 -
 .../classtvm_1_1runtime_1_1vm_1_1Executable.html   |    4 +-
 ..._1_1runtime_1_1vm_1_1MemoryManager-members.html |  108 +
 ...classtvm_1_1runtime_1_1vm_1_1MemoryManager.html |  229 +
 ...runtime_1_1vm_1_1MemoryManager__coll__graph.svg |   25 +
 ...asstvm_1_1runtime_1_1vm_1_1Storage-members.html |  126 +
 .../classtvm_1_1runtime_1_1vm_1_1Storage.html      |  255 +
 ...tvm_1_1runtime_1_1vm_1_1StorageObj-members.html |  140 +
 .../classtvm_1_1runtime_1_1vm_1_1StorageObj.html   |  407 ++
 ...1_1runtime_1_1vm_1_1StorageObj__coll__graph.svg |   98 +
 ...runtime_1_1vm_1_1StorageObj__inherit__graph.svg |   74 +
 ...vm_1_1runtime_1_1vm_1_1Storage__coll__graph.svg |   85 +
 ...1_1runtime_1_1vm_1_1Storage__inherit__graph.svg |   57 +
 ...stvm_1_1runtime_1_1vm_1_1VMClosure-members.html |    2 +-
 .../classtvm_1_1runtime_1_1vm_1_1VMClosure.html    |   14 +-
 ...m_1_1runtime_1_1vm_1_1VMClosureObj-members.html |    4 +-
 .../classtvm_1_1runtime_1_1vm_1_1VMClosureObj.html |   50 +-
 ...1runtime_1_1vm_1_1VMClosureObj__coll__graph.svg |  113 +-
 ...ntime_1_1vm_1_1VMClosureObj__inherit__graph.svg |  109 +-
 ..._1_1runtime_1_1vm_1_1VMClosure__coll__graph.svg |    4 +-
 ...1runtime_1_1vm_1_1VMClosure__inherit__graph.svg |    4 +-
 ...1_1runtime_1_1vm_1_1VirtualMachine-members.html |   71 +-
 ...lasstvm_1_1runtime_1_1vm_1_1VirtualMachine.html |  119 +-
 ...untime_1_1vm_1_1VirtualMachine__coll__graph.svg |  411 +-
 ...ime_1_1vm_1_1VirtualMachine__inherit__graph.svg |  185 +-
 docs/api/doxygen/compute__dag_8h.html              |  153 +
 docs/api/doxygen/compute__dag_8h__dep__incl.svg    |   94 +
 docs/api/doxygen/compute__dag_8h__incl.svg         | 1246 +++++
 docs/api/doxygen/compute__dag_8h_source.html       |  133 +
 docs/api/doxygen/data__layout_8h_source.html       |    2 +-
 docs/api/doxygen/data__type_8h.html                |    2 +-
 docs/api/doxygen/data__type_8h__dep__incl.svg      | 1294 +++--
 ...r_000002_000004.html => dir_000002_000005.html} |    0
 ...r_000002_000007.html => dir_000002_000008.html} |    0
 ...r_000002_000014.html => dir_000002_000015.html} |    0
 ...r_000002_000018.html => dir_000002_000020.html} |    0
 docs/api/doxygen/dir_000003_000004.html            |   90 -
 docs/api/doxygen/dir_000003_000009.html            |   90 +
 docs/api/doxygen/dir_000003_000015.html            |   90 +
 docs/api/doxygen/dir_000003_000021.html            |   90 +
 docs/api/doxygen/dir_000003_000022.html            |   90 +
 docs/api/doxygen/dir_000004_000005.html            |    6 +-
 ...r_000003_000008.html => dir_000004_000009.html} |    0
 docs/api/doxygen/dir_000004_000018.html            |   90 -
 ...r_000003_000018.html => dir_000004_000020.html} |    0
 ...r_000003_000019.html => dir_000004_000021.html} |    0
 ...r_000003_000020.html => dir_000004_000022.html} |    0
 ...r_000004_000005.html => dir_000005_000006.html} |    0
 docs/api/doxygen/dir_000005_000007.html            |   90 -
 docs/api/doxygen/dir_000005_000008.html            |   90 -
 ...r_000004_000008.html => dir_000005_000009.html} |    0
 ...r_000004_000014.html => dir_000005_000015.html} |    0
 docs/api/doxygen/dir_000005_000020.html            |    6 +-
 ...r_000005_000004.html => dir_000006_000005.html} |    0
 docs/api/doxygen/dir_000006_000008.html            |    6 +-
 docs/api/doxygen/dir_000006_000009.html            |   90 +
 ...r_000005_000010.html => dir_000006_000011.html} |    0
 ...r_000005_000014.html => dir_000006_000015.html} |    0
 ...r_000005_000019.html => dir_000006_000021.html} |    0
 ...r_000005_000020.html => dir_000006_000022.html} |    0
 ...r_000006_000004.html => dir_000007_000005.html} |    0
 ...r_000006_000008.html => dir_000007_000009.html} |    0
 ...r_000007_000004.html => dir_000008_000005.html} |    0
 ...r_000007_000008.html => dir_000008_000009.html} |    0
 ...r_000007_000014.html => dir_000008_000015.html} |    0
 ...r_000010_000004.html => dir_000011_000005.html} |    0
 docs/api/doxygen/dir_000012_000000.html            |   90 -
 docs/api/doxygen/dir_000013_000000.html            |    6 +-
 ...r_000013_000000.html => dir_000014_000000.html} |    0
 ...r_000014_000008.html => dir_000015_000009.html} |    0
 ...r_000015_000008.html => dir_000016_000009.html} |    0
 docs/api/doxygen/dir_000021_000000.html            |   90 -
 ...r_000019_000004.html => dir_000021_000005.html} |    0
 ...r_000019_000007.html => dir_000021_000008.html} |    0
 ...r_000019_000008.html => dir_000021_000009.html} |    0
 ...r_000019_000014.html => dir_000021_000015.html} |    0
 ...r_000019_000018.html => dir_000021_000020.html} |    0
 docs/api/doxygen/dir_000022_000000.html            |   90 -
 ...r_000020_000002.html => dir_000022_000002.html} |    0
 ...r_000020_000007.html => dir_000022_000008.html} |    0
 ...r_000020_000008.html => dir_000022_000009.html} |    0
 ...r_000020_000014.html => dir_000022_000015.html} |    0
 ...r_000020_000018.html => dir_000022_000020.html} |    0
 docs/api/doxygen/dir_000023_000000.html            |    6 +-
 docs/api/doxygen/dir_000023_000021.html            |   90 -
 docs/api/doxygen/dir_000023_000022.html            |   90 -
 docs/api/doxygen/dir_000023_000024.html            |   90 -
 docs/api/doxygen/dir_000024_000000.html            |    6 +-
 ...r_000022_000021.html => dir_000024_000023.html} |    0
 docs/api/doxygen/dir_000025_000000.html            |    6 +-
 docs/api/doxygen/dir_000025_000023.html            |    6 +-
 docs/api/doxygen/dir_000025_000024.html            |    6 +-
 docs/api/doxygen/dir_000025_000026.html            |    6 +-
 ...r_000023_000026.html => dir_000025_000028.html} |    0
 docs/api/doxygen/dir_000026_000000.html            |    6 +-
 ...r_000024_000021.html => dir_000026_000023.html} |    0
 docs/api/doxygen/dir_000027_000000.html            |    6 +-
 ...r_000025_000021.html => dir_000027_000023.html} |    0
 ...r_000025_000022.html => dir_000027_000024.html} |    0
 ...r_000025_000023.html => dir_000027_000025.html} |    0
 ...r_000025_000024.html => dir_000027_000026.html} |    0
 ...r_000025_000026.html => dir_000027_000028.html} |    0
 docs/api/doxygen/dir_000028_000000.html            |    6 +-
 ...r_000026_000021.html => dir_000028_000023.html} |    0
 ...r_000027_000000.html => dir_000029_000000.html} |    0
 ...r_000027_000021.html => dir_000029_000023.html} |    0
 ...r_000028_000000.html => dir_000030_000000.html} |    0
 ...r_000028_000021.html => dir_000030_000023.html} |    0
 .../dir_02be2c9d68e402f80df60bd528724ee5_dep.svg   |   24 +-
 .../dir_14640941691eabc830844bef8114fc0c_dep.svg   |    2 +-
 .../dir_194ecda214f05a38134392ac6a69b970_dep.svg   |   16 +-
 .../dir_404558507ed35459f0d7a6d81d8c508d.html      |    7 +-
 .../dir_404558507ed35459f0d7a6d81d8c508d_dep.svg   |   30 +-
 .../dir_501163e255a572c2b8f8622055dcc830_dep.svg   |    6 +-
 .../dir_519be2d4a83a987dbf989f1de527b870_dep.svg   |    2 +-
 .../dir_59fae77b9344561cec492d4c84fe16f0_dep.svg   |   36 +-
 .../dir_5baffeed82c1190bfdf7a4f918ab5ac6.html      |  122 +
 .../dir_5baffeed82c1190bfdf7a4f918ab5ac6_dep.svg   |   28 +
 .../dir_5da96592f3a7c442b838b075c58254c2_dep.svg   |   24 +-
 .../dir_63946bee875c6d52bce55e72a67a86ad_dep.svg   |   44 +-
 .../dir_6cd4295f6ad5aa17e5b568d0e5b190e5_dep.svg   |    2 +-
 .../dir_72c2f11201cd7636dc7624de0754daa5_dep.svg   |   12 +-
 .../dir_82fbc0b750acd2d16bf657eba2735040_dep.svg   |    6 +-
 .../dir_85f3d6180da4edc5eb489febd20e807a_dep.svg   |   44 +-
 .../dir_9028d5d964ed0471973ff1d6dc49c294_dep.svg   |    6 +-
 .../dir_919d148e3bc0d2ada10274b170555243_dep.svg   |    6 +-
 .../dir_9a72de697ed8769045f2ae88dc0db9c6_dep.svg   |   24 +-
 .../dir_a98464176f1216e334ac3bbacd433085.html      |  134 +
 .../dir_a98464176f1216e334ac3bbacd433085_dep.svg   |  141 +
 .../dir_a99f4dc995763900c0e382b7dd5d0038_dep.svg   |    2 +-
 .../dir_b4c7d8e826c599ba55146c099a14beb5.html      |    4 +-
 .../dir_b4c7d8e826c599ba55146c099a14beb5_dep.svg   |  434 +-
 .../dir_cf1b2a4a187708c24d9394e639e6417e_dep.svg   |    6 +-
 .../dir_d523279167051dc3aad9a40981221f4d_dep.svg   |    6 +-
 .../dir_dc867ff9a37cad1764f1670dc7eba6c1_dep.svg   |   16 +-
 .../dir_e79ffd3285e304ad4c501fa62028ed74_dep.svg   |    2 +-
 .../dir_f97d855a3173728370e632aa77170e34_dep.svg   |   22 +-
 .../dir_fafc18f54a755f417c55c769623cbfef_dep.svg   |    2 +-
 docs/api/doxygen/error_8h.html                     |    2 +-
 docs/api/doxygen/error_8h__dep__incl.svg           | 1024 ++--
 docs/api/doxygen/executable_8h.html                |  145 +
 docs/api/doxygen/executable_8h__dep__incl.svg      |   33 +
 docs/api/doxygen/executable_8h__incl.svg           |  488 ++
 docs/api/doxygen/executable_8h_source.html         |  126 +
 docs/api/doxygen/files.html                        |  365 +-
 docs/api/doxygen/functions.html                    |   42 +-
 docs/api/doxygen/functions_0x7e.html               |    9 +
 docs/api/doxygen/functions_a.html                  |   82 +-
 docs/api/doxygen/functions_b.html                  |   33 +-
 docs/api/doxygen/functions_c.html                  |   82 +-
 docs/api/doxygen/functions_d.html                  |    8 +
 docs/api/doxygen/functions_e.html                  |   31 +-
 docs/api/doxygen/functions_f.html                  |   37 +-
 docs/api/doxygen/functions_func_0x7e.html          |    9 +
 docs/api/doxygen/functions_func_a.html             |   58 +-
 docs/api/doxygen/functions_func_b.html             |   12 +-
 docs/api/doxygen/functions_func_c.html             |   48 +-
 docs/api/doxygen/functions_func_d.html             |    4 +
 docs/api/doxygen/functions_func_e.html             |   16 +-
 docs/api/doxygen/functions_func_f.html             |   25 +-
 docs/api/doxygen/functions_func_g.html             |   24 +-
 docs/api/doxygen/functions_func_h.html             |    3 +
 docs/api/doxygen/functions_func_i.html             |   26 +-
 docs/api/doxygen/functions_func_l.html             |   10 +-
 docs/api/doxygen/functions_func_m.html             |    9 +
 docs/api/doxygen/functions_func_n.html             |    3 +
 docs/api/doxygen/functions_func_o.html             |   25 +-
 docs/api/doxygen/functions_func_p.html             |   26 +-
 docs/api/doxygen/functions_func_r.html             |   39 +-
 docs/api/doxygen/functions_func_s.html             |   29 +-
 docs/api/doxygen/functions_func_t.html             |  106 +-
 docs/api/doxygen/functions_func_u.html             |   11 +-
 docs/api/doxygen/functions_func_v.html             |   42 +-
 docs/api/doxygen/functions_func_w.html             |   14 +
 docs/api/doxygen/functions_g.html                  |   22 +
 docs/api/doxygen/functions_h.html                  |    9 +
 docs/api/doxygen/functions_i.html                  |   61 +-
 docs/api/doxygen/functions_k.html                  |    3 +
 docs/api/doxygen/functions_l.html                  |   14 +-
 docs/api/doxygen/functions_m.html                  |   39 +
 docs/api/doxygen/functions_n.html                  |   29 +
 docs/api/doxygen/functions_o.html                  |   32 +-
 docs/api/doxygen/functions_p.html                  |   33 +-
 docs/api/doxygen/functions_r.html                  |   73 +-
 docs/api/doxygen/functions_s.html                  |   55 +-
 docs/api/doxygen/functions_t.html                  |  131 +-
 docs/api/doxygen/functions_type.html               |    8 +
 docs/api/doxygen/functions_u.html                  |   11 +-
 docs/api/doxygen/functions_v.html                  |   48 +-
 docs/api/doxygen/functions_vars.html               |   42 +-
 docs/api/doxygen/functions_vars_a.html             |   28 +-
 docs/api/doxygen/functions_vars_b.html             |   19 +-
 docs/api/doxygen/functions_vars_c.html             |   36 +
 docs/api/doxygen/functions_vars_d.html             |    4 +
 docs/api/doxygen/functions_vars_e.html             |   17 +-
 docs/api/doxygen/functions_vars_f.html             |   14 +
 docs/api/doxygen/functions_vars_h.html             |    6 +
 docs/api/doxygen/functions_vars_i.html             |   33 +-
 docs/api/doxygen/functions_vars_k.html             |    3 +
 docs/api/doxygen/functions_vars_l.html             |    6 +
 docs/api/doxygen/functions_vars_m.html             |   30 +
 docs/api/doxygen/functions_vars_n.html             |   26 +
 docs/api/doxygen/functions_vars_o.html             |   12 +-
 docs/api/doxygen/functions_vars_p.html             |    9 +
 docs/api/doxygen/functions_vars_r.html             |   32 +
 docs/api/doxygen/functions_vars_s.html             |   26 +-
 docs/api/doxygen/functions_vars_t.html             |   31 +-
 docs/api/doxygen/functions_vars_v.html             |    8 +
 docs/api/doxygen/functions_vars_w.html             |    6 +
 docs/api/doxygen/functions_w.html                  |   20 +
 docs/api/doxygen/functor_8h.html                   |    2 +-
 docs/api/doxygen/functor_8h__dep__incl.svg         | 1246 ++---
 docs/api/doxygen/hierarchy.html                    | 1653 +++---
 .../doxygen/include_2tvm_2ir_2transform_8h.html    |    2 +-
 .../include_2tvm_2ir_2transform_8h__dep__incl.svg  | 1007 ++--
 docs/api/doxygen/inherit_graph_100.svg             |   15 +-
 docs/api/doxygen/inherit_graph_101.svg             |   17 +-
 docs/api/doxygen/inherit_graph_102.svg             |   12 +-
 docs/api/doxygen/inherit_graph_103.svg             |   12 +-
 docs/api/doxygen/inherit_graph_104.svg             |   17 +-
 docs/api/doxygen/inherit_graph_105.svg             |   15 +-
 docs/api/doxygen/inherit_graph_106.svg             |   17 +-
 docs/api/doxygen/inherit_graph_107.svg             |   16 +-
 docs/api/doxygen/inherit_graph_108.svg             |   14 +-
 docs/api/doxygen/inherit_graph_109.svg             |   17 +-
 docs/api/doxygen/inherit_graph_110.svg             |   15 +-
 docs/api/doxygen/inherit_graph_111.svg             |   15 +-
 docs/api/doxygen/inherit_graph_112.svg             |   54 +-
 docs/api/doxygen/inherit_graph_113.svg             |   18 +-
 docs/api/doxygen/inherit_graph_114.svg             |   55 +-
 docs/api/doxygen/inherit_graph_115.svg             |   19 +-
 docs/api/doxygen/inherit_graph_116.svg             |   19 +-
 docs/api/doxygen/inherit_graph_117.svg             |   18 +-
 docs/api/doxygen/inherit_graph_118.svg             |   18 +-
 docs/api/doxygen/inherit_graph_119.svg             |   17 +-
 docs/api/doxygen/inherit_graph_120.svg             |   12 +-
 docs/api/doxygen/inherit_graph_121.svg             |   12 +-
 docs/api/doxygen/inherit_graph_122.svg             |   15 +-
 docs/api/doxygen/inherit_graph_123.svg             |   12 +-
 docs/api/doxygen/inherit_graph_124.svg             |   14 +-
 docs/api/doxygen/inherit_graph_125.svg             |   12 +-
 docs/api/doxygen/inherit_graph_126.svg             |   12 +-
 docs/api/doxygen/inherit_graph_127.svg             |   15 +-
 docs/api/doxygen/inherit_graph_128.svg             |   12 +-
 docs/api/doxygen/inherit_graph_129.svg             |   14 +-
 docs/api/doxygen/inherit_graph_130.svg             |   16 +-
 docs/api/doxygen/inherit_graph_131.svg             |   12 +-
 docs/api/doxygen/inherit_graph_132.svg             |   15 +-
 docs/api/doxygen/inherit_graph_133.svg             |   15 +-
 docs/api/doxygen/inherit_graph_134.svg             |   14 +-
 docs/api/doxygen/inherit_graph_135.svg             |   70 +-
 docs/api/doxygen/inherit_graph_136.svg             |   68 +-
 docs/api/doxygen/inherit_graph_137.svg             |   19 +-
 docs/api/doxygen/inherit_graph_138.svg             |    6 +-
 docs/api/doxygen/inherit_graph_139.svg             |   15 +-
 docs/api/doxygen/inherit_graph_140.svg             |   69 +-
 docs/api/doxygen/inherit_graph_141.svg             |   66 +-
 docs/api/doxygen/inherit_graph_142.svg             |   32 +-
 docs/api/doxygen/inherit_graph_143.svg             |   15 +-
 docs/api/doxygen/inherit_graph_144.svg             |   12 +-
 docs/api/doxygen/inherit_graph_145.svg             |   15 +-
 docs/api/doxygen/inherit_graph_146.svg             |   28 +-
 docs/api/doxygen/inherit_graph_147.svg             |   28 +-
 docs/api/doxygen/inherit_graph_148.svg             |   12 +-
 docs/api/doxygen/inherit_graph_149.svg             |   12 +-
 docs/api/doxygen/inherit_graph_150.svg             |   12 +-
 docs/api/doxygen/inherit_graph_151.svg             |   12 +-
 docs/api/doxygen/inherit_graph_152.svg             |   12 +-
 docs/api/doxygen/inherit_graph_153.svg             |   12 +-
 ...inherit_graph_149.svg => inherit_graph_154.svg} |    0
 ...inherit_graph_150.svg => inherit_graph_155.svg} |    0
 ...inherit_graph_151.svg => inherit_graph_156.svg} |    0
 ...inherit_graph_152.svg => inherit_graph_157.svg} |    0
 ...inherit_graph_153.svg => inherit_graph_158.svg} |    0
 docs/api/doxygen/inherit_graph_17.svg              |   41 +-
 docs/api/doxygen/inherit_graph_18.svg              |   28 +-
 docs/api/doxygen/inherit_graph_19.svg              |   40 +-
 docs/api/doxygen/inherit_graph_20.svg              |   25 +-
 docs/api/doxygen/inherit_graph_21.svg              |   12 +-
 docs/api/doxygen/inherit_graph_22.svg              |   12 +-
 docs/api/doxygen/inherit_graph_23.svg              |   15 +-
 docs/api/doxygen/inherit_graph_24.svg              |   15 +-
 docs/api/doxygen/inherit_graph_25.svg              |   15 +-
 docs/api/doxygen/inherit_graph_26.svg              |   15 +-
 docs/api/doxygen/inherit_graph_27.svg              |   15 +-
 docs/api/doxygen/inherit_graph_28.svg              |   12 +-
 docs/api/doxygen/inherit_graph_29.svg              |   14 +-
 docs/api/doxygen/inherit_graph_30.svg              |   15 +-
 docs/api/doxygen/inherit_graph_31.svg              |   14 +-
 docs/api/doxygen/inherit_graph_32.svg              |   14 +-
 docs/api/doxygen/inherit_graph_33.svg              |   14 +-
 docs/api/doxygen/inherit_graph_34.svg              |   54 +-
 docs/api/doxygen/inherit_graph_35.svg              |   14 +-
 docs/api/doxygen/inherit_graph_36.svg              |   54 +-
 docs/api/doxygen/inherit_graph_37.svg              |   27 +-
 docs/api/doxygen/inherit_graph_38.svg              |   24 +-
 docs/api/doxygen/inherit_graph_39.svg              |   27 +-
 docs/api/doxygen/inherit_graph_40.svg              |   24 +-
 docs/api/doxygen/inherit_graph_41.svg              |   17 +-
 docs/api/doxygen/inherit_graph_42.svg              |   17 +-
 docs/api/doxygen/inherit_graph_43.svg              |   17 +-
 docs/api/doxygen/inherit_graph_44.svg              |   17 +-
 docs/api/doxygen/inherit_graph_45.svg              |   14 +-
 docs/api/doxygen/inherit_graph_46.svg              |   14 +-
 docs/api/doxygen/inherit_graph_47.svg              |    4 +-
 docs/api/doxygen/inherit_graph_48.svg              |    4 +-
 docs/api/doxygen/inherit_graph_49.svg              |    4 +-
 docs/api/doxygen/inherit_graph_50.svg              |   15 +-
 docs/api/doxygen/inherit_graph_51.svg              |    4 +-
 docs/api/doxygen/inherit_graph_52.svg              |   15 +-
 docs/api/doxygen/inherit_graph_53.svg              |   17 +-
 docs/api/doxygen/inherit_graph_54.svg              |   15 +-
 docs/api/doxygen/inherit_graph_55.svg              |   16 +-
 docs/api/doxygen/inherit_graph_56.svg              |   15 +-
 docs/api/doxygen/inherit_graph_57.svg              | 2330 +-------
 docs/api/doxygen/inherit_graph_58.svg              |   15 +-
 docs/api/doxygen/inherit_graph_59.svg              | 2820 +++++++++-
 docs/api/doxygen/inherit_graph_60.svg              |   16 +-
 docs/api/doxygen/inherit_graph_61.svg              |   12 +-
 docs/api/doxygen/inherit_graph_62.svg              |   16 +-
 docs/api/doxygen/inherit_graph_63.svg              |   15 +-
 docs/api/doxygen/inherit_graph_64.svg              |   15 +-
 docs/api/doxygen/inherit_graph_65.svg              |   14 +-
 docs/api/doxygen/inherit_graph_66.svg              |   23 +-
 docs/api/doxygen/inherit_graph_67.svg              |   40 +-
 docs/api/doxygen/inherit_graph_68.svg              |   27 +-
 docs/api/doxygen/inherit_graph_69.svg              |   38 +-
 docs/api/doxygen/inherit_graph_70.svg              |   38 +-
 docs/api/doxygen/inherit_graph_71.svg              |   15 +-
 docs/api/doxygen/inherit_graph_72.svg              |   41 +-
 docs/api/doxygen/inherit_graph_73.svg              |   15 +-
 docs/api/doxygen/inherit_graph_74.svg              |   28 +-
 docs/api/doxygen/inherit_graph_75.svg              |   12 +-
 docs/api/doxygen/inherit_graph_76.svg              |   22 +-
 docs/api/doxygen/inherit_graph_77.svg              |   15 +-
 docs/api/doxygen/inherit_graph_78.svg              |   27 +-
 docs/api/doxygen/inherit_graph_79.svg              |   12 +-
 docs/api/doxygen/inherit_graph_80.svg              |   15 +-
 docs/api/doxygen/inherit_graph_81.svg              |   15 +-
 docs/api/doxygen/inherit_graph_82.svg              | 5238 +-----------------
 docs/api/doxygen/inherit_graph_83.svg              |   14 +-
 docs/api/doxygen/inherit_graph_84.svg              | 5728 +++++++++++++++++++-
 docs/api/doxygen/inherit_graph_85.svg              |   14 +-
 docs/api/doxygen/inherit_graph_86.svg              |   28 +-
 docs/api/doxygen/inherit_graph_87.svg              |  203 +-
 docs/api/doxygen/inherit_graph_88.svg              |   28 +-
 docs/api/doxygen/inherit_graph_89.svg              |  215 +-
 docs/api/doxygen/inherit_graph_90.svg              |   12 +-
 docs/api/doxygen/inherit_graph_91.svg              |   15 +-
 docs/api/doxygen/inherit_graph_92.svg              |   12 +-
 docs/api/doxygen/inherit_graph_93.svg              |   15 +-
 docs/api/doxygen/inherit_graph_94.svg              |  132 +-
 docs/api/doxygen/inherit_graph_95.svg              |   15 +-
 docs/api/doxygen/inherit_graph_96.svg              |  146 +-
 docs/api/doxygen/inherit_graph_97.svg              |    4 +-
 docs/api/doxygen/inherit_graph_98.svg              |   15 +-
 docs/api/doxygen/inherit_graph_99.svg              |   17 +-
 docs/api/doxygen/inherits.html                     |  272 +-
 docs/api/doxygen/interpreter_8h.html               |    3 +-
 docs/api/doxygen/interpreter_8h__incl.svg          | 1883 ++++---
 docs/api/doxygen/interpreter_8h_source.html        |   55 +-
 docs/api/doxygen/ir_2adt_8h.html                   |    2 +-
 docs/api/doxygen/ir_2adt_8h__dep__incl.svg         |  766 +--
 docs/api/doxygen/ir_2attrs_8h_source.html          |    2 +-
 docs/api/doxygen/ir_2expr_8h_source.html           |    2 +-
 docs/api/doxygen/ir_2function_8h.html              |    2 +-
 docs/api/doxygen/ir_2function_8h__dep__incl.svg    |  895 +--
 docs/api/doxygen/ir_2module_8h.html                |    2 +-
 docs/api/doxygen/ir_2module_8h__dep__incl.svg      |  770 +--
 docs/api/doxygen/loop__state_8h.html               |  195 +
 docs/api/doxygen/loop__state_8h__dep__incl.svg     |  113 +
 docs/api/doxygen/loop__state_8h__incl.svg          | 1235 +++++
 docs/api/doxygen/loop__state_8h_source.html        |  151 +
 docs/api/doxygen/measure_8h.html                   |  221 +
 docs/api/doxygen/measure_8h__dep__incl.svg         |   47 +
 docs/api/doxygen/measure_8h__incl.svg              | 1266 +++++
 docs/api/doxygen/measure_8h_source.html            |  182 +
 docs/api/doxygen/measure__record_8h.html           |  153 +
 docs/api/doxygen/measure__record_8h__incl.svg      | 1262 +++++
 docs/api/doxygen/measure__record_8h_source.html    |  121 +
 docs/api/doxygen/memory__manager_8h.html           |  163 +
 docs/api/doxygen/memory__manager_8h__dep__incl.svg |   33 +
 docs/api/doxygen/memory__manager_8h__incl.svg      |  295 +
 docs/api/doxygen/memory__manager_8h_source.html    |  125 +
 docs/api/doxygen/namespacemembers.html             |    6 +
 docs/api/doxygen/namespacemembers_c.html           |    3 +
 docs/api/doxygen/namespacemembers_enum.html        |   18 +
 docs/api/doxygen/namespacemembers_eval.html        |    6 +
 docs/api/doxygen/namespacemembers_func.html        |    3 +
 docs/api/doxygen/namespacemembers_func_r.html      |    5 +-
 docs/api/doxygen/namespacemembers_func_s.html      |   14 +-
 docs/api/doxygen/namespacemembers_func_u.html      |    3 +
 docs/api/doxygen/namespacemembers_func_w.html      |    3 +
 docs/api/doxygen/namespacemembers_i.html           |   12 +
 docs/api/doxygen/namespacemembers_k.html           |   11 +-
 docs/api/doxygen/namespacemembers_m.html           |   11 +-
 docs/api/doxygen/namespacemembers_r.html           |    5 +-
 docs/api/doxygen/namespacemembers_s.html           |   25 +-
 docs/api/doxygen/namespacemembers_type.html        |    9 +
 docs/api/doxygen/namespacemembers_u.html           |    3 +
 docs/api/doxygen/namespacemembers_vars.html        |   11 +-
 docs/api/doxygen/namespacemembers_w.html           |    3 +
 docs/api/doxygen/namespaces.html                   |   39 +-
 docs/api/doxygen/namespacetvm.html                 |    2 +
 .../doxygen/namespacetvm_1_1auto__scheduler.html   | 1036 ++++
 docs/api/doxygen/namespacetvm_1_1runtime.html      |    6 +
 .../api/doxygen/namespacetvm_1_1runtime_1_1vm.html |   60 +-
 docs/api/doxygen/ndarray_8h.html                   |    2 +-
 docs/api/doxygen/ndarray_8h__dep__incl.svg         | 1440 +++--
 docs/api/doxygen/node_2container_8h.html           |    2 +-
 docs/api/doxygen/node_2container_8h__dep__incl.svg | 1707 +++---
 docs/api/doxygen/node_8h.html                      |    2 +-
 docs/api/doxygen/node_8h__dep__incl.svg            | 1612 +++---
 docs/api/doxygen/object_8h.html                    |    2 +-
 docs/api/doxygen/object_8h__dep__incl.svg          | 1808 +++---
 docs/api/doxygen/operation_8h_source.html          |    2 +-
 docs/api/doxygen/packed__func_8h.html              |    2 +-
 docs/api/doxygen/packed__func_8h__dep__incl.svg    | 1046 ++--
 docs/api/doxygen/reflection_8h.html                |    2 +-
 docs/api/doxygen/reflection_8h__dep__incl.svg      | 1212 ++---
 docs/api/doxygen/registry_8h.html                  |    2 +-
 docs/api/doxygen/registry_8h__dep__incl.svg        |  634 ++-
 docs/api/doxygen/relay_2adt_8h_source.html         |    2 +-
 docs/api/doxygen/repr__printer_8h.html             |    2 +-
 docs/api/doxygen/repr__printer_8h__dep__incl.svg   | 1611 +++---
 docs/api/doxygen/runtime_2container_8h.html        |    8 +-
 .../doxygen/runtime_2container_8h__dep__incl.svg   | 1755 +++---
 docs/api/doxygen/runtime_2container_8h_source.html |    9 +-
 docs/api/doxygen/runtime_2memory_8h.html           |    2 +-
 docs/api/doxygen/runtime_2memory_8h__dep__incl.svg | 1638 +++---
 docs/api/doxygen/runtime_2module_8h.html           |    2 +-
 docs/api/doxygen/runtime_2module_8h__dep__incl.svg | 1056 ++--
 docs/api/doxygen/runtime_2vm_2vm_8h.html           |  157 +
 docs/api/doxygen/runtime_2vm_2vm_8h__incl.svg      |  731 +++
 docs/api/doxygen/runtime_2vm_2vm_8h_source.html    |  162 +
 docs/api/doxygen/runtime_2vm_8h.html               |  220 -
 docs/api/doxygen/runtime_2vm_8h__dep__incl.svg     |   31 -
 docs/api/doxygen/runtime_2vm_8h__incl.svg          |  497 --
 docs/api/doxygen/runtime_2vm_8h_source.html        |  229 -
 docs/api/doxygen/schedule_8h.html                  |    2 +-
 docs/api/doxygen/schedule_8h__dep__incl.svg        | 1392 +++--
 docs/api/doxygen/search/all_0.js                   |    4 +-
 docs/api/doxygen/search/all_1.js                   |   58 +-
 docs/api/doxygen/search/all_10.js                  |   30 +-
 docs/api/doxygen/search/all_12.js                  |   47 +-
 docs/api/doxygen/search/all_13.js                  |   64 +-
 docs/api/doxygen/search/all_14.js                  |   68 +-
 docs/api/doxygen/search/all_15.js                  |    5 +-
 docs/api/doxygen/search/all_16.js                  |   10 +-
 docs/api/doxygen/search/all_17.js                  |    8 +-
 docs/api/doxygen/search/all_19.js                  |    3 +
 docs/api/doxygen/search/all_2.js                   |   24 +-
 docs/api/doxygen/search/all_3.js                   |   68 +-
 docs/api/doxygen/search/all_4.js                   |    6 +-
 docs/api/doxygen/search/all_5.js                   |   26 +-
 docs/api/doxygen/search/all_6.js                   |   34 +-
 docs/api/doxygen/search/all_7.js                   |   11 +-
 docs/api/doxygen/search/all_8.js                   |    9 +-
 docs/api/doxygen/search/all_9.js                   |   42 +-
 docs/api/doxygen/search/all_b.js                   |   35 +-
 docs/api/doxygen/search/all_c.js                   |   17 +-
 docs/api/doxygen/search/all_d.js                   |   38 +-
 docs/api/doxygen/search/all_e.js                   |   13 +-
 docs/api/doxygen/search/all_f.js                   |   13 +-
 docs/api/doxygen/search/classes_0.js               |    7 +
 docs/api/doxygen/search/classes_1.js               |    5 +-
 docs/api/doxygen/search/classes_10.js              |   17 +
 docs/api/doxygen/search/classes_11.js              |    2 +
 docs/api/doxygen/search/classes_2.js               |   16 +-
 docs/api/doxygen/search/classes_5.js               |    8 +-
 docs/api/doxygen/search/classes_7.js               |    4 +-
 docs/api/doxygen/search/classes_8.js               |    3 +
 docs/api/doxygen/search/classes_9.js               |    4 +
 docs/api/doxygen/search/classes_a.js               |    7 +
 docs/api/doxygen/search/classes_d.js               |    6 +
 docs/api/doxygen/search/classes_f.js               |   10 +-
 docs/api/doxygen/search/enums_0.js                 |    1 +
 docs/api/doxygen/search/enums_2.js                 |    3 +-
 docs/api/doxygen/search/enums_5.js                 |    2 +
 docs/api/doxygen/search/enums_6.js                 |    3 +-
 docs/api/doxygen/search/enums_7.js                 |    3 +-
 docs/api/doxygen/search/enums_8.js                 |    2 +-
 docs/api/doxygen/search/enums_9.js                 |    9 +-
 docs/api/doxygen/search/enums_a.html               |   26 +
 docs/api/doxygen/search/{enums_9.js => enums_a.js} |    0
 docs/api/doxygen/search/enumvalues_4.js            |   33 +-
 docs/api/doxygen/search/files_0.js                 |    5 +-
 docs/api/doxygen/search/files_1.js                 |    5 +-
 docs/api/doxygen/search/files_11.js                |    2 +-
 docs/api/doxygen/search/files_2.js                 |    3 +-
 docs/api/doxygen/search/files_4.js                 |    5 +-
 docs/api/doxygen/search/files_8.js                 |    3 +-
 docs/api/doxygen/search/files_9.js                 |    3 +
 docs/api/doxygen/search/files_e.js                 |    4 +-
 docs/api/doxygen/search/files_f.js                 |    9 +-
 docs/api/doxygen/search/functions_1.js             |   12 +-
 docs/api/doxygen/search/functions_10.js            |    7 +-
 docs/api/doxygen/search/functions_12.js            |   14 +-
 docs/api/doxygen/search/functions_13.js            |   17 +-
 docs/api/doxygen/search/functions_14.js            |   13 +-
 docs/api/doxygen/search/functions_15.js            |    5 +-
 docs/api/doxygen/search/functions_16.js            |    4 +-
 docs/api/doxygen/search/functions_17.js            |    4 +-
 docs/api/doxygen/search/functions_19.js            |    3 +
 docs/api/doxygen/search/functions_2.js             |    5 +-
 docs/api/doxygen/search/functions_3.js             |   19 +-
 docs/api/doxygen/search/functions_4.js             |    3 +-
 docs/api/doxygen/search/functions_5.js             |    7 +-
 docs/api/doxygen/search/functions_6.js             |   10 +-
 docs/api/doxygen/search/functions_7.js             |    9 +-
 docs/api/doxygen/search/functions_8.js             |    1 +
 docs/api/doxygen/search/functions_9.js             |   10 +-
 docs/api/doxygen/search/functions_c.js             |    2 +
 docs/api/doxygen/search/functions_d.js             |    5 +-
 docs/api/doxygen/search/functions_e.js             |    1 +
 docs/api/doxygen/search/functions_f.js             |    4 +-
 docs/api/doxygen/search/namespaces_2.js            |    5 +-
 docs/api/doxygen/search/searchdata.js              |    2 +-
 docs/api/doxygen/search/typedefs_7.js              |    3 +-
 docs/api/doxygen/search/typedefs_a.js              |    1 +
 docs/api/doxygen/search/typedefs_d.js              |    2 +
 docs/api/doxygen/search/variables_0.js             |    4 +-
 docs/api/doxygen/search/variables_1.js             |   11 +-
 docs/api/doxygen/search/variables_10.js            |    9 +-
 docs/api/doxygen/search/variables_11.js            |   11 +-
 docs/api/doxygen/search/variables_12.js            |   12 +-
 docs/api/doxygen/search/variables_14.js            |    2 +
 docs/api/doxygen/search/variables_15.js            |    4 +-
 docs/api/doxygen/search/variables_2.js             |    9 +-
 docs/api/doxygen/search/variables_3.js             |   14 +-
 docs/api/doxygen/search/variables_4.js             |    3 +-
 docs/api/doxygen/search/variables_5.js             |    6 +-
 docs/api/doxygen/search/variables_6.js             |   10 +-
 docs/api/doxygen/search/variables_8.js             |    4 +-
 docs/api/doxygen/search/variables_9.js             |   14 +-
 docs/api/doxygen/search/variables_a.js             |    2 +-
 docs/api/doxygen/search/variables_b.js             |    2 +
 docs/api/doxygen/search/variables_c.js             |   10 +
 docs/api/doxygen/search/variables_d.js             |   12 +-
 docs/api/doxygen/search/variables_e.js             |    6 +-
 docs/api/doxygen/search/variables_f.js             |    3 +
 docs/api/doxygen/search__policy_8h.html            |  159 +
 docs/api/doxygen/search__policy_8h__dep__incl.svg  |   33 +
 docs/api/doxygen/search__policy_8h__incl.svg       | 1299 +++++
 docs/api/doxygen/search__policy_8h_source.html     |  121 +
 docs/api/doxygen/search__task_8h.html              |  147 +
 docs/api/doxygen/search__task_8h__dep__incl.svg    |   80 +
 docs/api/doxygen/search__task_8h__incl.svg         | 1310 +++++
 docs/api/doxygen/search__task_8h_source.html       |  131 +
 docs/api/doxygen/serializer_8h.html                |    2 +-
 docs/api/doxygen/serializer_8h__dep__incl.svg      | 1432 +++--
 docs/api/doxygen/stmt_8h__dep__incl.svg            |    2 +-
 docs/api/doxygen/stmt__functor_8h_source.html      |    2 +-
 ...er_1_1AttachMapNode_1_1IterKeyHash-members.html |  106 +
 ..._scheduler_1_1AttachMapNode_1_1IterKeyHash.html |  147 +
 ..._1AttachMapNode_1_1IterKeyHash__coll__graph.svg |   23 +
 ...auto__scheduler_1_1StageAttributes-members.html |  107 +
 ...ttvm_1_1auto__scheduler_1_1StageAttributes.html |  160 +
 ...__scheduler_1_1StageAttributes__coll__graph.svg |   24 +
 ...ructtvm_1_1runtime_1_1vm_1_1Buffer-members.html |  108 +
 .../structtvm_1_1runtime_1_1vm_1_1Buffer.html      |  172 +
 ...tvm_1_1runtime_1_1vm_1_1Buffer__coll__graph.svg |   24 +
 .../structtvm_1_1runtime_1_1vm_1_1Instruction.html |    4 +-
 .../structtvm_1_1runtime_1_1vm_1_1VMFrame.html     |    4 +-
 .../structtvm_1_1runtime_1_1vm_1_1VMFunction.html  |    4 +-
 docs/api/doxygen/structural__equal_8h.html         |    2 +-
 .../doxygen/structural__equal_8h__dep__incl.svg    |  932 ++--
 docs/api/doxygen/structural__hash_8h.html          |    2 +-
 .../api/doxygen/structural__hash_8h__dep__incl.svg |  932 ++--
 docs/api/doxygen/target_8h.html                    |    2 +-
 docs/api/doxygen/target_8h__dep__incl.svg          |  627 ++-
 docs/api/doxygen/target__id_8h.html                |    2 +-
 docs/api/doxygen/target__id_8h__dep__incl.svg      |  637 ++-
 docs/api/doxygen/tensor_8h.html                    |    2 +-
 docs/api/doxygen/tensor_8h__dep__incl.svg          |  748 ++-
 docs/api/doxygen/tensor_8h_source.html             |    2 +-
 docs/api/doxygen/tensor__intrin_8h.html            |    2 +-
 docs/api/doxygen/tensor__intrin_8h__dep__incl.svg  | 1344 +++--
 docs/api/doxygen/tir_2expr_8h_source.html          |    2 +-
 docs/api/doxygen/transform__step_8h.html           |  296 +
 docs/api/doxygen/transform__step_8h__dep__incl.svg |  127 +
 docs/api/doxygen/transform__step_8h__incl.svg      | 1247 +++++
 docs/api/doxygen/transform__step_8h_source.html    |  194 +
 docs/api/doxygen/with_8h.html                      |    2 +-
 docs/api/doxygen/with_8h__dep__incl.svg            | 1216 ++---
 docs/api/doxygen/with_8h_source.html               |    2 +-
 .../javadoc/org/apache/tvm/class-use/Function.html |   12 +-
 .../javadoc/org/apache/tvm/class-use/Module.html   |    8 +-
 docs/api/links.html                                |   36 +-
 docs/api/python/autotvm.html                       |   30 +-
 docs/api/python/contrib.html                       |   28 +-
 docs/api/python/driver.html                        |   28 +-
 docs/api/python/error.html                         |   28 +-
 docs/api/python/graph_runtime.html                 |   42 +-
 docs/api/python/index.html                         |   28 +-
 docs/api/python/ir.html                            |   28 +-
 docs/api/python/micro.html                         |   28 +-
 docs/api/python/ndarray.html                       |   28 +-
 docs/api/python/relay/analysis.html                |   28 +-
 docs/api/python/relay/backend.html                 |   28 +-
 docs/api/python/relay/dataflow_pattern.html        |   28 +-
 docs/api/python/relay/frontend.html                |   28 +-
 docs/api/python/relay/image.html                   |   28 +-
 docs/api/python/relay/index.html                   |   28 +-
 docs/api/python/relay/nn.html                      |   28 +-
 docs/api/python/relay/testing.html                 |   28 +-
 docs/api/python/relay/transform.html               |   28 +-
 docs/api/python/relay/vision.html                  |   28 +-
 docs/api/python/rpc.html                           |   28 +-
 docs/api/python/runtime.html                       |   28 +-
 docs/api/python/target.html                        |   28 +-
 docs/api/python/te.html                            |   28 +-
 docs/api/python/tir.html                           |   28 +-
 docs/api/python/topi.html                          |   32 +-
 docs/api/python/vta/index.html                     |   28 +-
 docs/api/typedoc/assets/js/main.js                 |    2 +-
 docs/api/typedoc/classes/bytestreamreader.html     |   13 +-
 docs/api/typedoc/classes/cachedcallstack.html      |   35 +-
 docs/api/typedoc/classes/dlcontext.html            |   11 +-
 docs/api/typedoc/classes/dldatatype.html           |   13 +-
 docs/api/typedoc/classes/environment.html          |   13 +-
 docs/api/typedoc/classes/ffilibrary.html           |   21 +-
 docs/api/typedoc/classes/graphruntime.html         |   17 +-
 docs/api/typedoc/classes/instance.html             |   41 +-
 docs/api/typedoc/classes/memory.html               |   35 +-
 docs/api/typedoc/classes/module.html               |   11 +-
 docs/api/typedoc/classes/ndarray.html              |   23 +-
 docs/api/typedoc/classes/packedfunccell.html       |    7 +-
 docs/api/typedoc/classes/rpcserver.html            |   15 +-
 docs/api/typedoc/classes/scalar.html               |    7 +-
 docs/api/typedoc/classes/webgpucontext.html        |   13 +-
 docs/api/typedoc/enums/argtypecode.html            |   31 +-
 docs/api/typedoc/enums/aynccallbackcode.html       |    5 +-
 docs/api/typedoc/enums/dldatatypecode.html         |    9 +-
 docs/api/typedoc/enums/rpcserverstate.html         |   13 +-
 docs/api/typedoc/enums/sizeof.html                 |   19 +-
 docs/api/typedoc/index.html                        |  115 +-
 docs/api/typedoc/interfaces/disposable.html        |    3 +-
 docs/api/typedoc/interfaces/functioninfo.html      |    7 +-
 docs/api/typedoc/interfaces/libraryprovider.html   |    5 +-
 docs/contribute/code_guide.html                    |   28 +-
 docs/contribute/code_review.html                   |   28 +-
 docs/contribute/committer_guide.html               |   28 +-
 docs/contribute/community.html                     |   28 +-
 docs/contribute/document.html                      |   28 +-
 docs/contribute/error_handling.html                |   28 +-
 docs/contribute/git_howto.html                     |   28 +-
 docs/contribute/index.html                         |   32 +-
 docs/contribute/pull_request.html                  |   28 +-
 docs/contribute/release_process.html               |   32 +-
 docs/deploy/android.html                           |   28 +-
 docs/deploy/arm_compute_lib.html                   |   32 +-
 docs/deploy/cpp_deploy.html                        |   28 +-
 docs/deploy/hls.html                               |   28 +-
 docs/deploy/index.html                             |   34 +-
 docs/deploy/integrate.html                         |   28 +-
 docs/dev/benchmark.html                            |   34 +-
 docs/dev/codebase_walkthrough.html                 |   77 +-
 docs/dev/convert_layout.html                       |   30 +-
 docs/dev/debugger.html                             |   30 +-
 docs/dev/frontend/tensorflow.html                  |  510 ++
 docs/dev/how_to.html                               |  275 +
 docs/dev/hybrid_script.html                        |   30 +-
 docs/dev/index.html                                |   54 +-
 docs/dev/inferbound.html                           |   30 +-
 docs/dev/introduction_to_module_serialization.html |   30 +-
 docs/dev/relay_add_op.html                         |   83 +-
 docs/dev/relay_add_pass.html                       |   76 +-
 docs/dev/relay_bring_your_own_codegen.html         |   78 +-
 docs/dev/relay_intro.html                          |   30 +-
 docs/dev/relay_op_strategy.html                    |   30 +-
 docs/dev/relay_pass_infra.html                     |   30 +-
 docs/dev/runtime.html                              |   32 +-
 docs/dev/security.html                             |   38 +-
 docs/dev/virtual_machine.html                      |   37 +-
 docs/faq.html                                      |   50 +-
 docs/frontend/tensorflow.html                      |  483 --
 docs/genindex.html                                 |   30 +-
 docs/index.html                                    |  120 +-
 docs/install/docker.html                           |   32 +-
 docs/install/from_source.html                      |   28 +-
 docs/install/index.html                            |   28 +-
 docs/install/nnpack.html                           |   28 +-
 docs/langref/hybrid_script.html                    |   28 +-
 docs/langref/index.html                            |   32 +-
 docs/langref/relay_adt.html                        |   28 +-
 docs/langref/relay_expr.html                       |   28 +-
 docs/langref/relay_op.html                         |   28 +-
 docs/langref/relay_pattern.html                    |   28 +-
 docs/langref/relay_type.html                       |   28 +-
 docs/objects.inv                                   |  Bin 15043 -> 15122 bytes
 docs/py-modindex.html                              |   28 +-
 docs/search.html                                   |   28 +-
 docs/searchindex.js                                |    2 +-
 docs/tutorials/autotvm/sg_execution_times.html     |   42 +-
 docs/tutorials/autotvm/tune_conv2d_cuda.html       |  102 +-
 docs/tutorials/autotvm/tune_relay_arm.html         |   68 +-
 docs/tutorials/autotvm/tune_relay_cuda.html        |   66 +-
 docs/tutorials/autotvm/tune_relay_mobile_gpu.html  |   68 +-
 docs/tutorials/autotvm/tune_relay_x86.html         |   60 +-
 docs/tutorials/autotvm/tune_simple_template.html   |   86 +-
 docs/tutorials/cross_compilation_and_rpc.html      |  510 --
 docs/tutorials/dev/low_level_custom_pass.html      |   56 +-
 docs/tutorials/dev/relay_pass_infra.html           |   56 +-
 docs/tutorials/dev/sg_execution_times.html         |   34 +-
 docs/tutorials/frontend/build_gcn.html             |   98 +-
 .../frontend/deploy_model_on_android.html          |   96 +-
 docs/tutorials/frontend/deploy_model_on_rasp.html  |   88 +-
 docs/tutorials/frontend/deploy_prequantized.html   |  100 +-
 .../frontend/deploy_prequantized_tflite.html       |  102 +-
 docs/tutorials/frontend/deploy_quantized.html      |   86 +-
 docs/tutorials/frontend/deploy_sparse.html         |   94 +-
 docs/tutorials/frontend/deploy_ssd_gluoncv.html    |  160 +-
 docs/tutorials/frontend/from_caffe2.html           |   88 +-
 docs/tutorials/frontend/from_coreml.html           |   88 +-
 docs/tutorials/frontend/from_darknet.html          |   88 +-
 docs/tutorials/frontend/from_keras.html            |   88 +-
 docs/tutorials/frontend/from_mxnet.html            |   86 +-
 docs/tutorials/frontend/from_onnx.html             |   98 +-
 docs/tutorials/frontend/from_pytorch.html          |   90 +-
 docs/tutorials/frontend/from_tensorflow.html       |  100 +-
 docs/tutorials/frontend/from_tflite.html           |   90 +-
 docs/tutorials/frontend/sg_execution_times.html    |   66 +-
 docs/tutorials/frontend/using_external_lib.html    |   88 +-
 .../get_started/cross_compilation_and_rpc.html     |  517 ++
 docs/tutorials/get_started/relay_quick_start.html  |  580 ++
 docs/tutorials/get_started/sg_execution_times.html |  254 +
 .../get_started/tensor_expr_get_started.html       |  586 ++
 docs/tutorials/index.html                          |  164 +-
 docs/tutorials/language/extern_op.html             |   68 +-
 docs/tutorials/language/intrin_math.html           |   68 +-
 docs/tutorials/language/reduction.html             |   76 +-
 docs/tutorials/language/scan.html                  |   68 +-
 docs/tutorials/language/schedule_primitives.html   |   90 +-
 docs/tutorials/language/sg_execution_times.html    |   46 +-
 docs/tutorials/language/tedd.html                  |   64 +-
 docs/tutorials/language/tensorize.html             |   76 +-
 docs/tutorials/language/tuple_inputs.html          |   96 +-
 docs/tutorials/micro/micro_tflite.html             |   48 +-
 docs/tutorials/micro/sg_execution_times.html       |   32 +-
 docs/tutorials/optimize/opt_conv_cuda.html         |   64 +-
 docs/tutorials/optimize/opt_conv_tensorcore.html   |   72 +-
 docs/tutorials/optimize/opt_gemm.html              |   86 +-
 .../optimize/opt_matmul_auto_tensorcore.html       |   60 +-
 docs/tutorials/optimize/sg_execution_times.html    |   38 +-
 docs/tutorials/relay_quick_start.html              |  573 --
 docs/tutorials/sg_execution_times.html             |  240 -
 docs/tutorials/tensor_expr_get_started.html        |  579 --
 docs/tutorials/topi/intro_topi.html                |   56 +-
 docs/tutorials/topi/sg_execution_times.html        |   32 +-
 docs/vta/dev/config.html                           |   44 +-
 docs/vta/dev/hardware.html                         |   44 +-
 docs/vta/dev/index.html                            |   44 +-
 docs/vta/index.html                                |   46 +-
 docs/vta/install.html                              |   44 +-
 docs/vta/tutorials/autotvm/sg_execution_times.html |   32 +-
 docs/vta/tutorials/autotvm/tune_relay_vta.html     |  232 +-
 .../tutorials/frontend/deploy_classification.html  |   62 +-
 docs/vta/tutorials/frontend/deploy_detection.html  |   46 +-
 .../vta/tutorials/frontend/sg_execution_times.html |   34 +-
 docs/vta/tutorials/index.html                      |   44 +-
 docs/vta/tutorials/matrix_multiply.html            |   44 +-
 docs/vta/tutorials/optimize/convolution_opt.html   |   52 +-
 .../tutorials/optimize/matrix_multiply_opt.html    |   48 +-
 .../vta/tutorials/optimize/sg_execution_times.html |   34 +-
 docs/vta/tutorials/sg_execution_times.html         |   34 +-
 docs/vta/tutorials/vta_get_started.html            |   44 +-
 1146 files changed, 103951 insertions(+), 41229 deletions(-)

diff --git a/docs/_downloads/a2903d9ade85eae7ce486f80ddaf9cfe/relay_quick_start.ipynb b/docs/_downloads/24a7471da81b18c4ba77d215289aed2f/relay_quick_start.ipynb
similarity index 100%
rename from docs/_downloads/a2903d9ade85eae7ce486f80ddaf9cfe/relay_quick_start.ipynb
rename to docs/_downloads/24a7471da81b18c4ba77d215289aed2f/relay_quick_start.ipynb
diff --git a/docs/_downloads/d3ffd0125acdfc11a8b6c84218d8377d/tensor_expr_get_started.py b/docs/_downloads/37c76200603adf82ebeffc23bdef8d31/tensor_expr_get_started.py
similarity index 100%
rename from docs/_downloads/d3ffd0125acdfc11a8b6c84218d8377d/tensor_expr_get_started.py
rename to docs/_downloads/37c76200603adf82ebeffc23bdef8d31/tensor_expr_get_started.py
diff --git a/docs/_downloads/7630fb4eead0706f214a455190118d17/cross_compilation_and_rpc.ipynb b/docs/_downloads/4dd41316d6ea7ff2b6993aab65428bf5/cross_compilation_and_rpc.ipynb
similarity index 100%
rename from docs/_downloads/7630fb4eead0706f214a455190118d17/cross_compilation_and_rpc.ipynb
rename to docs/_downloads/4dd41316d6ea7ff2b6993aab65428bf5/cross_compilation_and_rpc.ipynb
diff --git a/docs/_downloads/39e437b36375e97c049f64073eade7a6/relay_quick_start.py b/docs/_downloads/6a91d98d4242322072303282a1f2de9c/relay_quick_start.py
similarity index 100%
rename from docs/_downloads/39e437b36375e97c049f64073eade7a6/relay_quick_start.py
rename to docs/_downloads/6a91d98d4242322072303282a1f2de9c/relay_quick_start.py
diff --git a/docs/_downloads/157d346b9435735811846746471aebed/tensor_expr_get_started.ipynb b/docs/_downloads/70a0767409e81bb5aaa9ce4e7a151dec/tensor_expr_get_started.ipynb
similarity index 100%
rename from docs/_downloads/157d346b9435735811846746471aebed/tensor_expr_get_started.ipynb
rename to docs/_downloads/70a0767409e81bb5aaa9ce4e7a151dec/tensor_expr_get_started.ipynb
diff --git a/docs/_downloads/4cb9cb94f36033c7820ba70d890df4a1/cross_compilation_and_rpc.py b/docs/_downloads/cfc40d6a8f25c9fce268b6a4f277d915/cross_compilation_and_rpc.py
similarity index 100%
rename from docs/_downloads/4cb9cb94f36033c7820ba70d890df4a1/cross_compilation_and_rpc.py
rename to docs/_downloads/cfc40d6a8f25c9fce268b6a4f277d915/cross_compilation_and_rpc.py
diff --git a/docs/_sources/api/links.rst.txt b/docs/_sources/api/links.rst.txt
index 8c22cf8..4b8ab4d 100644
--- a/docs/_sources/api/links.rst.txt
+++ b/docs/_sources/api/links.rst.txt
@@ -15,8 +15,8 @@
     specific language governing permissions and limitations
     under the License.
 
-Links to API References
-=======================
+Links to Other API References
+=============================
 
 This page contains links to API references that are build with different doc build system.
 
diff --git a/docs/_sources/frontend/tensorflow.rst.txt b/docs/_sources/dev/frontend/tensorflow.rst.txt
similarity index 100%
rename from docs/_sources/frontend/tensorflow.rst.txt
rename to docs/_sources/dev/frontend/tensorflow.rst.txt
diff --git a/docs/_sources/dev/how_to.rst.txt b/docs/_sources/dev/how_to.rst.txt
new file mode 100644
index 0000000..ff078fc
--- /dev/null
+++ b/docs/_sources/dev/how_to.rst.txt
@@ -0,0 +1,31 @@
+..  Licensed to the Apache Software Foundation (ASF) under one
+    or more contributor license agreements.  See the NOTICE file
+    distributed with this work for additional information
+    regarding copyright ownership.  The ASF licenses this file
+    to you under the Apache License, Version 2.0 (the
+    "License"); you may not use this file except in compliance
+    with the License.  You may obtain a copy of the License at
+
+..    http://www.apache.org/licenses/LICENSE-2.0
+
+..  Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+
+.. _dev-how-to:
+
+Developer How-To Guide
+======================
+This section contains a collection of tips about how to work on
+various areas of the TVM stack.
+
+.. toctree::
+   :maxdepth: 1
+
+   relay_add_op
+   relay_add_pass
+   relay_bring_your_own_codegen
+   codebase_walkthrough
diff --git a/docs/_sources/dev/index.rst.txt b/docs/_sources/dev/index.rst.txt
index 8852341..9fe8394 100644
--- a/docs/_sources/dev/index.rst.txt
+++ b/docs/_sources/dev/index.rst.txt
@@ -27,7 +27,7 @@ This page is organized as follows:
 - The `Logical Architecture Components`_ section describes the logical components.
   The sections after are specific guides focused on each logical component, organized
   by the component's name.
-- The `How Tos`_ section contains useful tutorials to solve specific development problems.
+- Feel free to also checkout the :ref:`dev-how-to` for useful development tips.
 
 This guide provides a few complementary views of the architecture.
 First, we review a single end-to-end compilation flow and discuss the key data structures and the transformations.
@@ -375,19 +375,15 @@ customize the search and plugin their algorithms from the Python binding.
 
    benchmark
 
-
-How Tos
--------
-This section contains a collection of tips about how to work on
-various areas of the TVM stack.
+Frontends
+---------
+Frontends ingest models from different frameworks into the TVM stack.
+:py:mod:`tvm.relay.frontend` is the namespace for model ingestion APIs.
 
 .. toctree::
    :maxdepth: 1
 
-   relay_add_op
-   relay_add_pass
-   relay_bring_your_own_codegen
-   codebase_walkthrough
+   frontend/tensorflow
 
 
 Security
diff --git a/docs/_sources/dev/virtual_machine.rst.txt b/docs/_sources/dev/virtual_machine.rst.txt
index 5878003..059878f 100644
--- a/docs/_sources/dev/virtual_machine.rst.txt
+++ b/docs/_sources/dev/virtual_machine.rst.txt
@@ -276,11 +276,11 @@ VM.
 Currently, three types of objects, ``NDArray``, ``ADT``, and ``Closure`` objects, are used
 to represent tensor, tuple/list, and closure data, respectively. More details
 for each of them can be found at `include/tvm/runtime/ndarray.h`_,
-`include/tvm/runtime/vm.h`_, and `include/tvm/runtime/container.h`_, respectively.
+`include/tvm/runtime/vm/vm.h`_, and `include/tvm/runtime/container.h`_, respectively.
 
 .. _include/tvm/runtime/ndarray.h: https://github.com/apache/incubator-tvm/blob/master/include/tvm/runtime/ndarray.h
 
-.. _include/tvm/runtime/vm.h: https://github.com/apache/incubator-tvm/blob/master/include/tvm/runtime/vm.h
+.. _include/tvm/runtime/vm/vm.h: https://github.com/apache/incubator-tvm/blob/master/include/tvm/runtime/vm/vm.h
 
 .. _include/tvm/runtime/container.h: https://github.com/apache/incubator-tvm/blob/master/include/tvm/runtime/container.h
 
@@ -321,7 +321,12 @@ VM Compiler
 
 An important part of this infrastructure is a compiler from Relay's full IR into a sequence of bytecode.
 The VM compiler transforms a ``tvm::relay::Module`` into a ``tvm::relay::vm::Executable``. The executable
-contains a set of compiled functions, the compiled functions are contained in ``tvm::relay::vm::Function``. The functions contain metadata about the function as well as its compiled bytecode. The emitted executable object then can be loaded and run by a ``tvm::relay::vm::VirtualMachine`` object. For full definitions of the data structures, please see `include/tvm/runtime/vm.h`_.
+contains a set of compiled functions, the compiled functions are contained in ``tvm::relay::vm::Function``.
+The functions contain metadata about the function as well as its compiled bytecode. The emitted executable
+object then can be loaded and run by a ``tvm::relay::vm::VirtualMachine`` object. For full definitions of the
+data structures, please see `include/tvm/runtime/vm/executable.h`_ and `include/tvm/runtime/vm/vm.h`_.
+
+.. _include/tvm/runtime/vm/executable.h: https://github.com/apache/incubator-tvm/blob/master/include/tvm/runtime/vm/executable.h
 
 Optimizations
 ~~~~~~~~~~~~~
diff --git a/docs/_sources/index.rst.txt b/docs/_sources/index.rst.txt
index 5e3fa45..18b2da7 100644
--- a/docs/_sources/index.rst.txt
+++ b/docs/_sources/index.rst.txt
@@ -18,43 +18,69 @@
 TVM Documentation
 =================
 
+TVM is an open deep learning compiler stack for CPUs, GPUs, and specialized accelerators. It aims to close the gap between the productivity-focused deep learning frameworks, and the performance- or efficiency-oriented hardware backends.
+
+
 Get Started
 -----------
+
+- Follow the :doc:`instructions <install/index>` to install TVM.
+- Checkout the :doc:`Tutorials <tutorials/index>`.
+
+For Developers
+--------------
+
+- :doc:`dev/index` is useful for developers who want to understand the
+  architecture of TVM and/or actively develop on the project.
+- :doc:`dev/how_to` gives quick development tips on various topics.
+
+
 .. toctree::
    :maxdepth: 1
+   :caption: How to
+   :hidden:
 
    install/index
-   tutorials/index
-   vta/index
-   deploy/index
    contribute/index
-   faq
+   deploy/index
+   dev/how_to
+
+.. toctree::
+   :maxdepth: 1
+   :caption: Tutorials
+   :hidden:
+
+   tutorials/index
+
 
-API Reference
--------------
 .. toctree::
    :maxdepth: 2
+   :caption: References
+   :hidden:
 
    langref/index
    api/python/index
    api/links
 
-Developer Guide
----------------
 .. toctree::
    :maxdepth: 2
+   :hidden:
+   :caption: Deep Dive
 
    dev/index
 
-Frontends
----------
 .. toctree::
-   :maxdepth: 1
+   :maxdepth: 2
+   :hidden:
+   :caption: MISC
+
+   vta/index
+   faq
 
-   frontend/tensorflow
 
 Index
 -----
+
 .. toctree::
    :maxdepth: 1
 
diff --git a/docs/_sources/tutorials/autotvm/sg_execution_times.rst.txt b/docs/_sources/tutorials/autotvm/sg_execution_times.rst.txt
index ad28995..96bafaf 100644
--- a/docs/_sources/tutorials/autotvm/sg_execution_times.rst.txt
+++ b/docs/_sources/tutorials/autotvm/sg_execution_times.rst.txt
@@ -5,11 +5,11 @@
 
 Computation times
 =================
-**00:56.123** total execution time for **tutorials_autotvm** files:
-
-- **00:30.260**: :ref:`sphx_glr_tutorials_autotvm_tune_simple_template.py` (``tune_simple_template.py``)
-- **00:25.165**: :ref:`sphx_glr_tutorials_autotvm_tune_conv2d_cuda.py` (``tune_conv2d_cuda.py``)
-- **00:00.186**: :ref:`sphx_glr_tutorials_autotvm_tune_relay_cuda.py` (``tune_relay_cuda.py``)
-- **00:00.180**: :ref:`sphx_glr_tutorials_autotvm_tune_relay_arm.py` (``tune_relay_arm.py``)
-- **00:00.166**: :ref:`sphx_glr_tutorials_autotvm_tune_relay_x86.py` (``tune_relay_x86.py``)
-- **00:00.166**: :ref:`sphx_glr_tutorials_autotvm_tune_relay_mobile_gpu.py` (``tune_relay_mobile_gpu.py``)
+**01:04.301** total execution time for **tutorials_autotvm** files:
+
+- **00:31.985**: :ref:`sphx_glr_tutorials_autotvm_tune_conv2d_cuda.py` (``tune_conv2d_cuda.py``)
+- **00:31.624**: :ref:`sphx_glr_tutorials_autotvm_tune_simple_template.py` (``tune_simple_template.py``)
+- **00:00.188**: :ref:`sphx_glr_tutorials_autotvm_tune_relay_x86.py` (``tune_relay_x86.py``)
+- **00:00.174**: :ref:`sphx_glr_tutorials_autotvm_tune_relay_cuda.py` (``tune_relay_cuda.py``)
+- **00:00.165**: :ref:`sphx_glr_tutorials_autotvm_tune_relay_mobile_gpu.py` (``tune_relay_mobile_gpu.py``)
+- **00:00.164**: :ref:`sphx_glr_tutorials_autotvm_tune_relay_arm.py` (``tune_relay_arm.py``)
diff --git a/docs/_sources/tutorials/autotvm/tune_conv2d_cuda.rst.txt b/docs/_sources/tutorials/autotvm/tune_conv2d_cuda.rst.txt
index 565fa0c..1274b7f 100644
--- a/docs/_sources/tutorials/autotvm/tune_conv2d_cuda.rst.txt
+++ b/docs/_sources/tutorials/autotvm/tune_conv2d_cuda.rst.txt
@@ -234,26 +234,26 @@ for this template
        7 unroll_explicit: OtherOption([0, 1]) len=2
     )
     Get devices for measurement successfully!
-    No: 1   GFLOPS: 0.00/0.00       result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7ffa773c8af1]\n  [bt] (3) /workspace/build/libtvm.so(+0x551ed7) [0x7ffa7698aed7]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x3e6) [0x7ffa7698a976]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
-    No: 2   GFLOPS: 0.00/0.00       result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7ffa773c8af1]\n  [bt] (3) /workspace/build/libtvm.so(+0x551ed7) [0x7ffa7698aed7]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x3e6) [0x7ffa7698a976]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
-    No: 3   GFLOPS: 0.00/0.00       result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7ffa773c8af1]\n  [bt] (3) /workspace/build/libtvm.so(+0x551ed7) [0x7ffa7698aed7]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x3e6) [0x7ffa7698a976]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
-    No: 4   GFLOPS: 0.00/0.00       result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7ffa773c8af1]\n  [bt] (3) /workspace/build/libtvm.so(+0x551ed7) [0x7ffa7698aed7]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x3e6) [0x7ffa7698a976]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
-    No: 5   GFLOPS: 0.00/0.00       result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7ffa773c8af1]\n  [bt] (3) /workspace/build/libtvm.so(+0x551ed7) [0x7ffa7698aed7]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x3e6) [0x7ffa7698a976]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
-    No: 6   GFLOPS: 0.00/0.00       result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7ffa773c8af1]\n  [bt] (3) /workspace/build/libtvm.so(+0x551ed7) [0x7ffa7698aed7]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x3e6) [0x7ffa7698a976]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
-    No: 7   GFLOPS: 0.00/0.00       result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7ffa773c8af1]\n  [bt] (3) /workspace/build/libtvm.so(+0x551ed7) [0x7ffa7698aed7]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x3e6) [0x7ffa7698a976]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
-    No: 8   GFLOPS: 0.00/0.00       result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7ffa773c8af1]\n  [bt] (3) /workspace/build/libtvm.so(+0x551ed7) [0x7ffa7698aed7]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x3e6) [0x7ffa7698a976]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
-    No: 9   GFLOPS: 0.00/0.00       result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7ffa773c8af1]\n  [bt] (3) /workspace/build/libtvm.so(+0x551ed7) [0x7ffa7698aed7]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x3e6) [0x7ffa7698a976]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
-    No: 10  GFLOPS: 0.00/0.00       result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7ffa773c8af1]\n  [bt] (3) /workspace/build/libtvm.so(+0x551ed7) [0x7ffa7698aed7]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x3e6) [0x7ffa7698a976]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
-    No: 11  GFLOPS: 0.00/0.00       result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7ffa773c8af1]\n  [bt] (3) /workspace/build/libtvm.so(+0x551ed7) [0x7ffa7698aed7]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x3e6) [0x7ffa7698a976]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
-    No: 12  GFLOPS: 53.34/53.34     result: MeasureResult(costs=(0.00434000212,), error_no=0, all_cost=1.8472955226898193, timestamp=1595589864.5762575)    [('tile_f', [-1, 1, 1, 1]), ('tile_y', [-1, 1, 1, 7]), ('tile_x', [-1, 1, 1, 1]), ('tile_rc', [-1, 16, 1]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 512), ('unroll_explicit', 1)],None,8533140
-    No: 13  GFLOPS: 0.00/53.34      result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7ffa773c8af1]\n  [bt] (3) /workspace/build/libtvm.so(+0x551ed7) [0x7ffa7698aed7]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x3e6) [0x7ffa7698a976]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
-    No: 14  GFLOPS: 0.00/53.34      result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7ffa773c8af1]\n  [bt] (3) /workspace/build/libtvm.so(+0x551ed7) [0x7ffa7698aed7]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x3e6) [0x7ffa7698a976]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
-    No: 15  GFLOPS: 0.00/53.34      result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7ffa773c8af1]\n  [bt] (3) /workspace/build/libtvm.so(+0x551ed7) [0x7ffa7698aed7]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x3e6) [0x7ffa7698a976]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
-    No: 16  GFLOPS: 0.00/53.34      result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7ffa773c8af1]\n  [bt] (3) /workspace/build/libtvm.so(+0x551ed7) [0x7ffa7698aed7]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x3e6) [0x7ffa7698a976]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
-    No: 17  GFLOPS: 0.00/53.34      result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7ffa773c8af1]\n  [bt] (3) /workspace/build/libtvm.so(+0x551ed7) [0x7ffa7698aed7]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x3e6) [0x7ffa7698a976]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
-    No: 18  GFLOPS: 0.00/53.34      result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7ffa773c8af1]\n  [bt] (3) /workspace/build/libtvm.so(+0x551ed7) [0x7ffa7698aed7]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x3e6) [0x7ffa7698a976]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
-    No: 19  GFLOPS: 383.71/383.71   result: MeasureResult(costs=(0.0006033176964285714,), error_no=0, all_cost=2.3823819160461426, timestamp=1595589869.384095)     [('tile_f', [-1, 2, 1, 1]), ('tile_y', [-1, 1, 7, 1]), ('tile_x', [-1, 1, 7, 1]), ('tile_rc', [-1, 32, 1]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 1)],None,9699801
-    No: 20  GFLOPS: 4.97/383.71     result: MeasureResult(costs=(0.04653973725,), error_no=0, all_cost=2.067434787750244, timestamp=1595589870.543709)      [('tile_f', [-1, 2, 1, 16]), ('tile_y', [-1, 1, 1, 1]), ('tile_x', [-1, 7, 1, 1]), ('tile_rc', [-1, 2, 32]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 1, 1]), ('auto_unroll_max_step', 512), ('unroll_explicit', 1)],None,7502165
+    No: 1   GFLOPS: 0.00/0.00       result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7fc842b50e31]\n  [bt] (3) /workspace/build/libtvm.so(+0x5a4947) [0x7fc842148947]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x3e6) [0x7fc8421483e6]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
+    No: 2   GFLOPS: 0.00/0.00       result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7fc842b50e31]\n  [bt] (3) /workspace/build/libtvm.so(+0x5a4947) [0x7fc842148947]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x3e6) [0x7fc8421483e6]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
+    No: 3   GFLOPS: 0.00/0.00       result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7fc842b50e31]\n  [bt] (3) /workspace/build/libtvm.so(+0x5a4947) [0x7fc842148947]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x3e6) [0x7fc8421483e6]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
+    No: 4   GFLOPS: 0.00/0.00       result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7fc842b50e31]\n  [bt] (3) /workspace/build/libtvm.so(+0x5a4947) [0x7fc842148947]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x3e6) [0x7fc8421483e6]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
+    No: 5   GFLOPS: 0.00/0.00       result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7fc842b50e31]\n  [bt] (3) /workspace/build/libtvm.so(+0x5a4947) [0x7fc842148947]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x3e6) [0x7fc8421483e6]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
+    No: 6   GFLOPS: 0.00/0.00       result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7fc842b50e31]\n  [bt] (3) /workspace/build/libtvm.so(+0x5a4947) [0x7fc842148947]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x3e6) [0x7fc8421483e6]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
+    No: 7   GFLOPS: 0.00/0.00       result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7fc842b50e31]\n  [bt] (3) /workspace/build/libtvm.so(+0x5a4947) [0x7fc842148947]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x3e6) [0x7fc8421483e6]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
+    No: 8   GFLOPS: 0.00/0.00       result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7fc842b50e31]\n  [bt] (3) /workspace/build/libtvm.so(+0x5a4947) [0x7fc842148947]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x3e6) [0x7fc8421483e6]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
+    No: 9   GFLOPS: 0.00/0.00       result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7fc842b50e31]\n  [bt] (3) /workspace/build/libtvm.so(+0x5a4947) [0x7fc842148947]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x3e6) [0x7fc8421483e6]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
+    No: 10  GFLOPS: 0.00/0.00       result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7fc842b50e31]\n  [bt] (3) /workspace/build/libtvm.so(+0x5a4947) [0x7fc842148947]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x3e6) [0x7fc8421483e6]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
+    No: 11  GFLOPS: 0.00/0.00       result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7fc842b50e31]\n  [bt] (3) /workspace/build/libtvm.so(+0x5a4947) [0x7fc842148947]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x3e6) [0x7fc8421483e6]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
+    No: 12  GFLOPS: 70.15/70.15     result: MeasureResult(costs=(0.0033000235,), error_no=0, all_cost=1.911299467086792, timestamp=1595958486.1247668)      [('tile_f', [-1, 1, 1, 1]), ('tile_y', [-1, 1, 1, 7]), ('tile_x', [-1, 1, 1, 1]), ('tile_rc', [-1, 16, 1]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 512), ('unroll_explicit', 1)],None,8533140
+    No: 13  GFLOPS: 0.00/70.15      result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7fc842b50e31]\n  [bt] (3) /workspace/build/libtvm.so(+0x5a4947) [0x7fc842148947]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x3e6) [0x7fc8421483e6]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
+    No: 14  GFLOPS: 0.00/70.15      result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7fc842b50e31]\n  [bt] (3) /workspace/build/libtvm.so(+0x5a4947) [0x7fc842148947]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x3e6) [0x7fc8421483e6]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
+    No: 15  GFLOPS: 0.00/70.15      result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7fc842b50e31]\n  [bt] (3) /workspace/build/libtvm.so(+0x5a4947) [0x7fc842148947]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x3e6) [0x7fc8421483e6]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
+    No: 16  GFLOPS: 0.00/70.15      result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7fc842b50e31]\n  [bt] (3) /workspace/build/libtvm.so(+0x5a4947) [0x7fc842148947]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x3e6) [0x7fc8421483e6]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
+    No: 17  GFLOPS: 0.00/70.15      result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7fc842b50e31]\n  [bt] (3) /workspace/build/libtvm.so(+0x5a4947) [0x7fc842148947]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x3e6) [0x7fc8421483e6]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
+    No: 18  GFLOPS: 0.00/70.15      result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7fc842b50e31]\n  [bt] (3) /workspace/build/libtvm.so(+0x5a4947) [0x7fc842148947]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x3e6) [0x7fc8421483e6]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
+    No: 19  GFLOPS: 691.81/691.81   result: MeasureResult(costs=(0.00033463196171171173,), error_no=0, all_cost=2.530919075012207, timestamp=1595958492.4823241)    [('tile_f', [-1, 2, 1, 1]), ('tile_y', [-1, 1, 7, 1]), ('tile_x', [-1, 1, 7, 1]), ('tile_rc', [-1, 32, 1]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 1)],None,9699801
+    No: 20  GFLOPS: 6.95/691.81     result: MeasureResult(costs=(0.03330911575,), error_no=0, all_cost=2.0892677307128906, timestamp=1595958493.6065364)    [('tile_f', [-1, 2, 1, 16]), ('tile_y', [-1, 1, 1, 1]), ('tile_x', [-1, 7, 1, 1]), ('tile_rc', [-1, 2, 32]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 1, 1]), ('auto_unroll_max_step', 512), ('unroll_explicit', 1)],None,7502165
 
 
 
@@ -307,7 +307,7 @@ and measure running time.
 
     Best config:
     [('tile_f', [-1, 2, 1, 1]), ('tile_y', [-1, 1, 7, 1]), ('tile_x', [-1, 1, 7, 1]), ('tile_rc', [-1, 32, 1]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 1)],None,9699801
-    Time cost of this operator: 0.000689
+    Time cost of this operator: 0.000358
 
 
 
diff --git a/docs/_sources/tutorials/autotvm/tune_simple_template.rst.txt b/docs/_sources/tutorials/autotvm/tune_simple_template.rst.txt
index c067c81..21296a3 100644
--- a/docs/_sources/tutorials/autotvm/tune_simple_template.rst.txt
+++ b/docs/_sources/tutorials/autotvm/tune_simple_template.rst.txt
@@ -361,16 +361,16 @@ used to get the best config later.
  .. code-block:: none
 
     Get devices for measurement successfully!
-    No: 1   GFLOPS: 3.63/3.63       result: MeasureResult(costs=(0.0738644216,), error_no=0, all_cost=1.5411388874053955, timestamp=1595589829.7469058)     [('tile_y', [-1, 8]), ('tile_x', [-1, 8])],None,33
-    No: 2   GFLOPS: 2.00/3.63       result: MeasureResult(costs=(0.13443100079999998,), error_no=0, all_cost=2.5407021045684814, timestamp=1595589832.3761141)      [('tile_y', [-1, 8]), ('tile_x', [-1, 2])],None,13
-    No: 3   GFLOPS: 10.33/10.33     result: MeasureResult(costs=(0.025978123600000003,), error_no=0, all_cost=1.236288070678711, timestamp=1595589833.273457)       [('tile_y', [-1, 16]), ('tile_x', [-1, 128])],None,74
-    No: 4   GFLOPS: 9.36/10.33      result: MeasureResult(costs=(0.0286771322,), error_no=0, all_cost=0.9563946723937988, timestamp=1595589834.2116983)     [('tile_y', [-1, 16]), ('tile_x', [-1, 32])],None,54
-    No: 5   GFLOPS: 3.20/10.33      result: MeasureResult(costs=(0.0837980178,), error_no=0, all_cost=1.7327964305877686, timestamp=1595589836.0246713)     [('tile_y', [-1, 128]), ('tile_x', [-1, 8])],None,37
-    No: 6   GFLOPS: 3.36/10.33      result: MeasureResult(costs=(0.079870629,), error_no=0, all_cost=1.7182672023773193, timestamp=1595589837.7763348)      [('tile_y', [-1, 64]), ('tile_x', [-1, 8])],None,36
-    No: 7   GFLOPS: 9.71/10.33      result: MeasureResult(costs=(0.027645139000000003,), error_no=0, all_cost=0.9216654300689697, timestamp=1595589838.702522)      [('tile_y', [-1, 1]), ('tile_x', [-1, 128])],None,70
-    No: 8   GFLOPS: 14.33/14.33     result: MeasureResult(costs=(0.0187322464,), error_no=0, all_cost=0.7096536159515381, timestamp=1595589839.4786544)     [('tile_y', [-1, 4]), ('tile_x', [-1, 512])],None,92
-    No: 9   GFLOPS: 0.86/14.33      result: MeasureResult(costs=(0.3125007998,), error_no=0, all_cost=5.3441712856292725, timestamp=1595589845.5408623)     [('tile_y', [-1, 512]), ('tile_x', [-1, 2])],None,19
-    No: 10  GFLOPS: 0.45/14.33      result: MeasureResult(costs=(0.6012485108,), error_no=0, all_cost=9.975238561630249, timestamp=1595589855.656276)       [('tile_y', [-1, 512]), ('tile_x', [-1, 1])],None,9
+    No: 1   GFLOPS: 3.77/3.77       result: MeasureResult(costs=(0.07128316500000001,), error_no=0, all_cost=1.8829278945922852, timestamp=1595958448.7124765)      [('tile_y', [-1, 8]), ('tile_x', [-1, 8])],None,33
+    No: 2   GFLOPS: 1.85/3.77       result: MeasureResult(costs=(0.1451507098,), error_no=0, all_cost=2.90598726272583, timestamp=1595958451.6248004)       [('tile_y', [-1, 8]), ('tile_x', [-1, 2])],None,13
+    No: 3   GFLOPS: 7.03/7.03       result: MeasureResult(costs=(0.0381901404,), error_no=0, all_cost=2.7528152465820312, timestamp=1595958452.802595)      [('tile_y', [-1, 16]), ('tile_x', [-1, 128])],None,74
+    No: 4   GFLOPS: 4.22/7.03       result: MeasureResult(costs=(0.06359837780000001,), error_no=0, all_cost=2.1183362007141113, timestamp=1595958454.388583)       [('tile_y', [-1, 16]), ('tile_x', [-1, 32])],None,54
+    No: 5   GFLOPS: 5.42/7.03       result: MeasureResult(costs=(0.0495258222,), error_no=0, all_cost=1.8740108013153076, timestamp=1595958455.6781332)     [('tile_y', [-1, 128]), ('tile_x', [-1, 8])],None,37
+    No: 6   GFLOPS: 6.05/7.03       result: MeasureResult(costs=(0.0443383826,), error_no=0, all_cost=1.8742012977600098, timestamp=1595958456.9374595)     [('tile_y', [-1, 64]), ('tile_x', [-1, 8])],None,36
+    No: 7   GFLOPS: 24.92/24.92     result: MeasureResult(costs=(0.0107738118,), error_no=0, all_cost=1.4422945976257324, timestamp=1595958457.6563804)     [('tile_y', [-1, 1]), ('tile_x', [-1, 128])],None,70
+    No: 8   GFLOPS: 20.91/24.92     result: MeasureResult(costs=(0.0128377142,), error_no=0, all_cost=1.290924072265625, timestamp=1595958458.4099865)      [('tile_y', [-1, 4]), ('tile_x', [-1, 512])],None,92
+    No: 9   GFLOPS: 0.81/24.92      result: MeasureResult(costs=(0.33006461,), error_no=0, all_cost=6.2914183139801025, timestamp=1595958464.1311278)       [('tile_y', [-1, 512]), ('tile_x', [-1, 2])],None,19
+    No: 10  GFLOPS: 0.57/24.92      result: MeasureResult(costs=(0.4708847314,), error_no=0, all_cost=9.149282217025757, timestamp=1595958473.1613426)      [('tile_y', [-1, 512]), ('tile_x', [-1, 1])],None,9
 
 
 
diff --git a/docs/_sources/tutorials/cross_compilation_and_rpc.rst.txt b/docs/_sources/tutorials/cross_compilation_and_rpc.rst.txt
deleted file mode 100644
index c4b9ef6..0000000
--- a/docs/_sources/tutorials/cross_compilation_and_rpc.rst.txt
+++ /dev/null
@@ -1,340 +0,0 @@
-.. note::
-    :class: sphx-glr-download-link-note
-
-    Click :ref:`here <sphx_glr_download_tutorials_cross_compilation_and_rpc.py>` to download the full example code
-.. rst-class:: sphx-glr-example-title
-
-.. _sphx_glr_tutorials_cross_compilation_and_rpc.py:
-
-
-.. _tutorial-cross-compilation-and-rpc:
-
-Cross Compilation and RPC
-=========================
-**Author**: `Ziheng Jiang <https://github.com/ZihengJiang/>`_, `Lianmin Zheng <https://github.com/merrymercy/>`_
-
-This tutorial introduces cross compilation and remote device
-execution with RPC in TVM.
-
-With cross compilation and RPC, you can **compile a program on your
-local machine then run it on the remote device**. It is useful when
-the remote device resource are limited, like Raspberry Pi and mobile
-platforms. In this tutorial, we will use the Raspberry Pi for a CPU example
-and the Firefly-RK3399 for an OpenCL example.
-
-Build TVM Runtime on Device
----------------------------
-
-The first step is to build the TVM runtime on the remote device.
-
-.. note::
-
-  All instructions in both this section and the next section should be
-  executed on the target device, e.g. Raspberry Pi.  We assume the target
-  is running Linux.
-
-Since we do compilation on the local machine, the remote device is only used
-for running the generated code. We only need to build the TVM runtime on
-the remote device.
-
-.. code-block:: bash
-
-  git clone --recursive https://github.com/apache/incubator-tvm tvm
-  cd tvm
-  make runtime -j2
-
-After building the runtime successfully, we need to set environment variables
-in :code:`~/.bashrc` file. We can edit :code:`~/.bashrc`
-using :code:`vi ~/.bashrc` and add the line below (Assuming your TVM
-directory is in :code:`~/tvm`):
-
-.. code-block:: bash
-
-  export PYTHONPATH=$PYTHONPATH:~/tvm/python
-
-To update the environment variables, execute :code:`source ~/.bashrc`.
-
-Set Up RPC Server on Device
----------------------------
-To start an RPC server, run the following command on your remote device
-(Which is Raspberry Pi in this example).
-
-  .. code-block:: bash
-
-    python -m tvm.exec.rpc_server --host 0.0.0.0 --port=9090
-
-If you see the line below, it means the RPC server started
-successfully on your device.
-
-   .. code-block:: bash
-
-     INFO:root:RPCServer: bind to 0.0.0.0:9090
-
-
-Declare and Cross Compile Kernel on Local Machine
--------------------------------------------------
-
-.. note::
-
-  Now we go back to the local machine, which has a full TVM installed
-  (with LLVM).
-
-Here we will declare a simple kernel on the local machine:
-
-
-.. code-block:: default
-
-
-    import numpy as np
-
-    import tvm
-    from tvm import te
-    from tvm import rpc
-    from tvm.contrib import util
-
-    n = tvm.runtime.convert(1024)
-    A = te.placeholder((n,), name='A')
-    B = te.compute((n,), lambda i: A[i] + 1.0, name='B')
-    s = te.create_schedule(B.op)
-
-
-
-
-
-
-
-Then we cross compile the kernel.
-The target should be 'llvm -mtriple=armv7l-linux-gnueabihf' for
-Raspberry Pi 3B, but we use 'llvm' here to make this tutorial runnable
-on our webpage building server. See the detailed note in the following block.
-
-
-.. code-block:: default
-
-
-    local_demo = True
-
-    if local_demo:
-        target = 'llvm'
-    else:
-        target = 'llvm -mtriple=armv7l-linux-gnueabihf'
-
-    func = tvm.build(s, [A, B], target=target, name='add_one')
-    # save the lib at a local temp folder
-    temp = util.tempdir()
-    path = temp.relpath('lib.tar')
-    func.export_library(path)
-
-
-
-
-
-
-
-.. note::
-
-  To run this tutorial with a real remote device, change :code:`local_demo`
-  to False and replace :code:`target` in :code:`build` with the appropriate
-  target triple for your device. The target triple which might be
-  different for different devices. For example, it is
-  :code:`'llvm -mtriple=armv7l-linux-gnueabihf'` for Raspberry Pi 3B and
-  :code:`'llvm -mtriple=aarch64-linux-gnu'` for RK3399.
-
-  Usually, you can query the target by running :code:`gcc -v` on your
-  device, and looking for the line starting with :code:`Target:`
-  (Though it may still be a loose configuration.)
-
-  Besides :code:`-mtriple`, you can also set other compilation options
-  like:
-
-  * -mcpu=<cpuname>
-      Specify a specific chip in the current architecture to generate code for. By default this is inferred from the target triple and autodetected to the current architecture.
-  * -mattr=a1,+a2,-a3,...
-      Override or control specific attributes of the target, such as whether SIMD operations are enabled or not. The default set of attributes is set by the current CPU.
-      To get the list of available attributes, you can do:
-
-      .. code-block:: bash
-
-        llc -mtriple=<your device target triple> -mattr=help
-
-  These options are consistent with `llc <http://llvm.org/docs/CommandGuide/llc.html>`_.
-  It is recommended to set target triple and feature set to contain specific
-  feature available, so we can take full advantage of the features of the
-  board.
-  You can find more details about cross compilation attributes from
-  `LLVM guide of cross compilation <https://clang.llvm.org/docs/CrossCompilation.html>`_.
-
-Run CPU Kernel Remotely by RPC
-------------------------------
-We show how to run the generated CPU kernel on the remote device.
-First we obtain an RPC session from remote device.
-
-
-.. code-block:: default
-
-
-    if local_demo:
-        remote = rpc.LocalSession()
-    else:
-        # The following is my environment, change this to the IP address of your target device
-        host = '10.77.1.162'
-        port = 9090
-        remote = rpc.connect(host, port)
-
-
-
-
-
-
-
-Upload the lib to the remote device, then invoke a device local
-compiler to relink them. Now `func` is a remote module object.
-
-
-.. code-block:: default
-
-
-    remote.upload(path)
-    func = remote.load_module('lib.tar')
-
-    # create arrays on the remote device
-    ctx = remote.cpu()
-    a = tvm.nd.array(np.random.uniform(size=1024).astype(A.dtype), ctx)
-    b = tvm.nd.array(np.zeros(1024, dtype=A.dtype), ctx)
-    # the function will run on the remote device
-    func(a, b)
-    np.testing.assert_equal(b.asnumpy(), a.asnumpy() + 1)
-
-
-
-
-
-
-
-When you want to evaluate the performance of the kernel on the remote
-device, it is important to avoid the overhead of network.
-:code:`time_evaluator` will returns a remote function that runs the
-function over number times, measures the cost per run on the remote
-device and returns the measured cost. Network overhead is excluded.
-
-
-.. code-block:: default
-
-
-    time_f = func.time_evaluator(func.entry_name, ctx, number=10)
-    cost = time_f(a, b).mean
-    print('%g secs/op' % cost)
-
-
-
-
-
-.. rst-class:: sphx-glr-script-out
-
- Out:
-
- .. code-block:: none
-
-    1.184e-07 secs/op
-
-
-
-Run OpenCL Kernel Remotely by RPC
----------------------------------
-For remote OpenCL devices, the workflow is almost the same as above.
-You can define the kernel, upload files, and run via RPC.
-
-.. note::
-
-   Raspberry Pi does not support OpenCL, the following code is tested on
-   Firefly-RK3399. You may follow this `tutorial <https://gist.github.com/mli/585aed2cec0b5178b1a510f9f236afa2>`_
-   to setup the OS and OpenCL driver for RK3399.
-
-   Also we need to build the runtime with OpenCL enabled on rk3399 board. In the TVM
-   root directory, execute
-
-.. code-block:: bash
-
-   cp cmake/config.cmake .
-   sed -i "s/USE_OPENCL OFF/USE_OPENCL ON/" config.cmake
-   make runtime -j4
-
-The following function shows how we run an OpenCL kernel remotely
-
-
-.. code-block:: default
-
-
-    def run_opencl():
-        # NOTE: This is the setting for my rk3399 board. You need to modify
-        # them according to your environment.
-        target_host = "llvm -mtriple=aarch64-linux-gnu"
-        opencl_device_host = '10.77.1.145'
-        opencl_device_port = 9090
-
-        # create schedule for the above "add one" compute declaration
-        s = te.create_schedule(B.op)
-        xo, xi = s[B].split(B.op.axis[0], factor=32)
-        s[B].bind(xo, te.thread_axis("blockIdx.x"))
-        s[B].bind(xi, te.thread_axis("threadIdx.x"))
-        func = tvm.build(s, [A, B], "opencl", target_host=target_host)
-
-        remote = rpc.connect(opencl_device_host, opencl_device_port)
-
-        # export and upload
-        path = temp.relpath('lib_cl.tar')
-        func.export_library(path)
-        remote.upload(path)
-        func = remote.load_module('lib_cl.tar')
-
-        # run
-        ctx = remote.cl()
-        a = tvm.nd.array(np.random.uniform(size=1024).astype(A.dtype), ctx)
-        b = tvm.nd.array(np.zeros(1024, dtype=A.dtype), ctx)
-        func(a, b)
-        np.testing.assert_equal(b.asnumpy(), a.asnumpy() + 1)
-        print("OpenCL test passed!")
-
-
-
-
-
-
-
-Summary
--------
-This tutorial provides a walk through of cross compilation and RPC
-features in TVM.
-
-- Set up an RPC server on the remote device.
-- Set up the target device configuration to cross compile the kernels on the
-  local machine.
-- Upload and run the kernels remotely via the RPC API.
-
-
-.. _sphx_glr_download_tutorials_cross_compilation_and_rpc.py:
-
-
-.. only :: html
-
- .. container:: sphx-glr-footer
-    :class: sphx-glr-footer-example
-
-
-
-  .. container:: sphx-glr-download
-
-     :download:`Download Python source code: cross_compilation_and_rpc.py <cross_compilation_and_rpc.py>`
-
-
-
-  .. container:: sphx-glr-download
-
-     :download:`Download Jupyter notebook: cross_compilation_and_rpc.ipynb <cross_compilation_and_rpc.ipynb>`
-
-
-.. only:: html
-
- .. rst-class:: sphx-glr-signature
-
-    `Gallery generated by Sphinx-Gallery <https://sphinx-gallery.github.io>`_
diff --git a/docs/_sources/tutorials/dev/sg_execution_times.rst.txt b/docs/_sources/tutorials/dev/sg_execution_times.rst.txt
index 8d1ea04..24a87d6 100644
--- a/docs/_sources/tutorials/dev/sg_execution_times.rst.txt
+++ b/docs/_sources/tutorials/dev/sg_execution_times.rst.txt
@@ -5,7 +5,7 @@
 
 Computation times
 =================
-**00:00.537** total execution time for **tutorials_dev** files:
+**00:00.557** total execution time for **tutorials_dev** files:
 
-- **00:00.385**: :ref:`sphx_glr_tutorials_dev_relay_pass_infra.py` (``relay_pass_infra.py``)
-- **00:00.152**: :ref:`sphx_glr_tutorials_dev_low_level_custom_pass.py` (``low_level_custom_pass.py``)
+- **00:00.390**: :ref:`sphx_glr_tutorials_dev_relay_pass_infra.py` (``relay_pass_infra.py``)
+- **00:00.167**: :ref:`sphx_glr_tutorials_dev_low_level_custom_pass.py` (``low_level_custom_pass.py``)
diff --git a/docs/_sources/tutorials/frontend/deploy_model_on_android.rst.txt b/docs/_sources/tutorials/frontend/deploy_model_on_android.rst.txt
index 8915117..6a82e08 100644
--- a/docs/_sources/tutorials/frontend/deploy_model_on_android.rst.txt
+++ b/docs/_sources/tutorials/frontend/deploy_model_on_android.rst.txt
@@ -413,7 +413,7 @@ Execute on TVM
 
     TVM prediction top-1: tiger cat
     Evaluate inference time cost...
-    Mean inference time (std dev): 3.72 ms (0.15 ms)
+    Mean inference time (std dev): 6.35 ms (0.91 ms)
 
 
 
diff --git a/docs/_sources/tutorials/frontend/deploy_prequantized.rst.txt b/docs/_sources/tutorials/frontend/deploy_prequantized.rst.txt
index d9cca7c..9e92cfd 100644
--- a/docs/_sources/tutorials/frontend/deploy_prequantized.rst.txt
+++ b/docs/_sources/tutorials/frontend/deploy_prequantized.rst.txt
@@ -323,7 +323,7 @@ output values are identical out of 1000 outputs from mobilenet v2.
 
  .. code-block:: none
 
-    196 in 1000 raw floating outputs identical.
+    188 in 1000 raw floating outputs identical.
 
 
 
@@ -351,7 +351,7 @@ Here we give an example of how to measure performance of TVM compiled models.
 
  .. code-block:: none
 
-    Elapsed average ms: 19.153483929999997
+    Elapsed average ms: 32.100931599999996
 
 
 
diff --git a/docs/_sources/tutorials/frontend/deploy_prequantized_tflite.rst.txt b/docs/_sources/tutorials/frontend/deploy_prequantized_tflite.rst.txt
index 071eb01..913a9a2 100644
--- a/docs/_sources/tutorials/frontend/deploy_prequantized_tflite.rst.txt
+++ b/docs/_sources/tutorials/frontend/deploy_prequantized_tflite.rst.txt
@@ -359,7 +359,7 @@ Here we give an example of how to measure performance of TVM compiled models.
 
  .. code-block:: none
 
-    Elapsed average ms: 37.04663029
+    Elapsed average ms: 57.231551929999995
 
 
 
@@ -392,7 +392,7 @@ Here we give an example of how to measure performance of TVM compiled models.
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 2 minutes  36.192 seconds)
+   **Total running time of the script:** ( 2 minutes  34.312 seconds)
 
 
 .. _sphx_glr_download_tutorials_frontend_deploy_prequantized_tflite.py:
diff --git a/docs/_sources/tutorials/frontend/deploy_ssd_gluoncv.rst.txt b/docs/_sources/tutorials/frontend/deploy_ssd_gluoncv.rst.txt
index b121041..924a3a9 100644
--- a/docs/_sources/tutorials/frontend/deploy_ssd_gluoncv.rst.txt
+++ b/docs/_sources/tutorials/frontend/deploy_ssd_gluoncv.rst.txt
@@ -168,45 +168,6 @@ Create TVM runtime and do inference
 
  .. code-block:: none
 
-    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 3, 512, 512), 'float32'), ('TENSOR', (64, 3, 7, 7), 'float32'), (2, 2), (3, 3, 3, 3), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 64, 128, 128), 'float32'), ('TENSOR', (64, 64, 1, 1), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 64, 128, 128), 'float32'), ('TENSOR', (64, 64, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 64, 128, 128), 'float32'), ('TENSOR', (256, 64, 1, 1), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 256, 128, 128), 'float32'), ('TENSOR', (64, 256, 1, 1), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 256, 128, 128), 'float32'), ('TENSOR', (128, 256, 1, 1), 'float32'), (2, 2), (0, 0, 0, 0), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 128, 64, 64), 'float32'), ('TENSOR', (128, 128, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 128, 64, 64), 'float32'), ('TENSOR', (512, 128, 1, 1), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 256, 128, 128), 'float32'), ('TENSOR', (512, 256, 1, 1), 'float32'), (2, 2), (0, 0, 0, 0), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 512, 64, 64), 'float32'), ('TENSOR', (128, 512, 1, 1), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 512, 64, 64), 'float32'), ('TENSOR', (256, 512, 1, 1), 'float32'), (2, 2), (0, 0, 0, 0), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 256, 32, 32), 'float32'), ('TENSOR', (256, 256, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 256, 32, 32), 'float32'), ('TENSOR', (1024, 256, 1, 1), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 512, 64, 64), 'float32'), ('TENSOR', (1024, 512, 1, 1), 'float32'), (2, 2), (0, 0, 0, 0), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 1024, 32, 32), 'float32'), ('TENSOR', (256, 1024, 1, 1), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 1024, 32, 32), 'float32'), ('TENSOR', (84, 1024, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 1024, 32, 32), 'float32'), ('TENSOR', (512, 1024, 1, 1), 'float32'), (2, 2), (0, 0, 0, 0), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 512, 16, 16), 'float32'), ('TENSOR', (512, 512, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 512, 16, 16), 'float32'), ('TENSOR', (2048, 512, 1, 1), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 1024, 32, 32), 'float32'), ('TENSOR', (2048, 1024, 1, 1), 'float32'), (2, 2), (0, 0, 0, 0), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 2048, 16, 16), 'float32'), ('TENSOR', (512, 2048, 1, 1), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 2048, 16, 16), 'float32'), ('TENSOR', (126, 2048, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 512, 16, 16), 'float32'), ('TENSOR', (512, 512, 3, 3), 'float32'), (2, 2), (1, 1, 1, 1), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 512, 8, 8), 'float32'), ('TENSOR', (126, 512, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 512, 8, 8), 'float32'), ('TENSOR', (512, 512, 1, 1), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 512, 8, 8), 'float32'), ('TENSOR', (512, 512, 3, 3), 'float32'), (2, 2), (1, 1, 1, 1), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 512, 4, 4), 'float32'), ('TENSOR', (126, 512, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 512, 4, 4), 'float32'), ('TENSOR', (256, 512, 1, 1), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 256, 4, 4), 'float32'), ('TENSOR', (256, 256, 3, 3), 'float32'), (2, 2), (1, 1, 1, 1), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 256, 2, 2), 'float32'), ('TENSOR', (84, 256, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 256, 2, 2), 'float32'), ('TENSOR', (256, 256, 1, 1), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 256, 2, 2), 'float32'), ('TENSOR', (256, 256, 3, 3), 'float32'), (2, 2), (1, 1, 1, 1), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 256, 1, 1), 'float32'), ('TENSOR', (84, 256, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 1024, 32, 32), 'float32'), ('TENSOR', (16, 1024, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 2048, 16, 16), 'float32'), ('TENSOR', (24, 2048, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 512, 8, 8), 'float32'), ('TENSOR', (24, 512, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 512, 4, 4), 'float32'), ('TENSOR', (24, 512, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 256, 2, 2), 'float32'), ('TENSOR', (16, 256, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
-    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 256, 1, 1), 'float32'), ('TENSOR', (16, 256, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
     Cannot find config for target=llvm -keys=cpu, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 3, 512, 512), 'float32'), ('TENSOR', (64, 3, 7, 7), 'float32'), (2, 2), (3, 3, 3, 3), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
     Cannot find config for target=llvm -keys=cpu, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 64, 128, 128), 'float32'), ('TENSOR', (64, 64, 1, 1), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
     Cannot find config for target=llvm -keys=cpu, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 64, 128, 128), 'float32'), ('TENSOR', (64, 64, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
@@ -285,6 +246,45 @@ Create TVM runtime and do inference
     Cannot find config for target=llvm -keys=cpu, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 64, 4, 4, 8), 'float32'), ('TENSOR', (3, 64, 3, 3, 8, 8), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW8c', 'NCHW8c', 'float32'). A fallback configuration is used, which may bring great performance regression.
     Cannot find config for target=llvm -keys=cpu, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 32, 2, 2, 8), 'float32'), ('TENSOR', (2, 32, 3, 3, 8, 8), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW8c', 'NCHW8c', 'float32'). A fallback configuration is used, which may bring great performance regression.
     Cannot find config for target=llvm -keys=cpu, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 32, 1, 1, 8), 'float32'), ('TENSOR', (2, 32, 3, 3, 8, 8), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW8c', 'NCHW8c', 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 3, 512, 512), 'float32'), ('TENSOR', (64, 3, 7, 7), 'float32'), (2, 2), (3, 3, 3, 3), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 64, 128, 128), 'float32'), ('TENSOR', (64, 64, 1, 1), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 64, 128, 128), 'float32'), ('TENSOR', (64, 64, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 64, 128, 128), 'float32'), ('TENSOR', (256, 64, 1, 1), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 256, 128, 128), 'float32'), ('TENSOR', (64, 256, 1, 1), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 256, 128, 128), 'float32'), ('TENSOR', (128, 256, 1, 1), 'float32'), (2, 2), (0, 0, 0, 0), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 128, 64, 64), 'float32'), ('TENSOR', (128, 128, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 128, 64, 64), 'float32'), ('TENSOR', (512, 128, 1, 1), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 256, 128, 128), 'float32'), ('TENSOR', (512, 256, 1, 1), 'float32'), (2, 2), (0, 0, 0, 0), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 512, 64, 64), 'float32'), ('TENSOR', (128, 512, 1, 1), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 512, 64, 64), 'float32'), ('TENSOR', (256, 512, 1, 1), 'float32'), (2, 2), (0, 0, 0, 0), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 256, 32, 32), 'float32'), ('TENSOR', (256, 256, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 256, 32, 32), 'float32'), ('TENSOR', (1024, 256, 1, 1), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 512, 64, 64), 'float32'), ('TENSOR', (1024, 512, 1, 1), 'float32'), (2, 2), (0, 0, 0, 0), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 1024, 32, 32), 'float32'), ('TENSOR', (256, 1024, 1, 1), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 1024, 32, 32), 'float32'), ('TENSOR', (84, 1024, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 1024, 32, 32), 'float32'), ('TENSOR', (512, 1024, 1, 1), 'float32'), (2, 2), (0, 0, 0, 0), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 512, 16, 16), 'float32'), ('TENSOR', (512, 512, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 512, 16, 16), 'float32'), ('TENSOR', (2048, 512, 1, 1), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 1024, 32, 32), 'float32'), ('TENSOR', (2048, 1024, 1, 1), 'float32'), (2, 2), (0, 0, 0, 0), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 2048, 16, 16), 'float32'), ('TENSOR', (512, 2048, 1, 1), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 2048, 16, 16), 'float32'), ('TENSOR', (126, 2048, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 512, 16, 16), 'float32'), ('TENSOR', (512, 512, 3, 3), 'float32'), (2, 2), (1, 1, 1, 1), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 512, 8, 8), 'float32'), ('TENSOR', (126, 512, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 512, 8, 8), 'float32'), ('TENSOR', (512, 512, 1, 1), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 512, 8, 8), 'float32'), ('TENSOR', (512, 512, 3, 3), 'float32'), (2, 2), (1, 1, 1, 1), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 512, 4, 4), 'float32'), ('TENSOR', (126, 512, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 512, 4, 4), 'float32'), ('TENSOR', (256, 512, 1, 1), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 256, 4, 4), 'float32'), ('TENSOR', (256, 256, 3, 3), 'float32'), (2, 2), (1, 1, 1, 1), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 256, 2, 2), 'float32'), ('TENSOR', (84, 256, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 256, 2, 2), 'float32'), ('TENSOR', (256, 256, 1, 1), 'float32'), (1, 1), (0, 0, 0, 0), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 256, 2, 2), 'float32'), ('TENSOR', (256, 256, 3, 3), 'float32'), (2, 2), (1, 1, 1, 1), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 256, 1, 1), 'float32'), ('TENSOR', (84, 256, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 1024, 32, 32), 'float32'), ('TENSOR', (16, 1024, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 2048, 16, 16), 'float32'), ('TENSOR', (24, 2048, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 512, 8, 8), 'float32'), ('TENSOR', (24, 512, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 512, 4, 4), 'float32'), ('TENSOR', (24, 512, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 256, 2, 2), 'float32'), ('TENSOR', (16, 256, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
+    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32, workload=('conv2d_nchw.cuda', ('TENSOR', (1, 256, 1, 1), 'float32'), ('TENSOR', (16, 256, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'float32'). A fallback configuration is used, which may bring great performance regression.
 
 
 
diff --git a/docs/_sources/tutorials/frontend/from_onnx.rst.txt b/docs/_sources/tutorials/frontend/from_onnx.rst.txt
index 8af4649..1b78daf 100644
--- a/docs/_sources/tutorials/frontend/from_onnx.rst.txt
+++ b/docs/_sources/tutorials/frontend/from_onnx.rst.txt
@@ -151,7 +151,7 @@ Execute on TVM
 
  .. code-block:: none
 
-
    ...47%, 0.01 MB, 18 KB/s, 0 seconds passed
    ...94%, 0.02 MB, 36 KB/s, 0 seconds passed
    ...100%, 0.02 MB, 54 KB/s, 0 seconds passed
+
    ...47%, 0.01 MB, 764 KB/s, 0 seconds passed
    ...94%, 0.02 MB, 1447 KB/s, 0 seconds passed
    ...100%, 0.02 MB, 2122 KB/s, 0 seconds passed
     Cannot find config for target=llvm -keys=cpu, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 32, 224, 224), 'float32'), ('TENSOR', (9, 32, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
     Cannot find config for target=llvm -keys=cpu, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 64, 224, 224), 'float32'), ('TENSOR', (32, 64, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
     Cannot find config for target=llvm -keys=cpu, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 1, 224, 224), 'float32'), ('TENSOR', (64, 1, 5, 5), 'float32'), (1, 1), (2, 2, 2, 2), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
diff --git a/docs/_sources/tutorials/frontend/from_tensorflow.rst.txt b/docs/_sources/tutorials/frontend/from_tensorflow.rst.txt
index 41d065c..fdb4b07 100644
--- a/docs/_sources/tutorials/frontend/from_tensorflow.rst.txt
+++ b/docs/_sources/tutorials/frontend/from_tensorflow.rst.txt
@@ -197,9 +197,9 @@ Results:
 
     ANTLR runtime and generated code versions disagree: 4.8!=4.7.2
     ANTLR runtime and generated code versions disagree: 4.8!=4.7.2
-    /workspace/docs/../python/tvm/relay/frontend/tensorflow.py:2657: UserWarning: Ignore the passed shape. Shape in graphdef will be used for operator DecodeJpeg/contents.
+    /workspace/docs/../python/tvm/relay/frontend/tensorflow.py:2661: UserWarning: Ignore the passed shape. Shape in graphdef will be used for operator DecodeJpeg/contents.
       "will be used for operator %s." % node.name)
-    /workspace/docs/../python/tvm/relay/frontend/tensorflow.py:683: UserWarning: DecodeJpeg: It's a pass through, please handle preprocessing before input
+    /workspace/docs/../python/tvm/relay/frontend/tensorflow.py:686: UserWarning: DecodeJpeg: It's a pass through, please handle preprocessing before input
       warnings.warn("DecodeJpeg: It's a pass through, please handle preprocessing before input")
     Tensorflow protobuf imported to relay frontend.
 
diff --git a/docs/_sources/tutorials/frontend/sg_execution_times.rst.txt b/docs/_sources/tutorials/frontend/sg_execution_times.rst.txt
index 1480cb4..55dd102 100644
--- a/docs/_sources/tutorials/frontend/sg_execution_times.rst.txt
+++ b/docs/_sources/tutorials/frontend/sg_execution_times.rst.txt
@@ -5,23 +5,23 @@
 
 Computation times
 =================
-**07:09.748** total execution time for **tutorials_frontend** files:
+**06:57.966** total execution time for **tutorials_frontend** files:
 
-- **02:36.192**: :ref:`sphx_glr_tutorials_frontend_deploy_prequantized_tflite.py` (``deploy_prequantized_tflite.py``)
-- **00:38.193**: :ref:`sphx_glr_tutorials_frontend_deploy_ssd_gluoncv.py` (``deploy_ssd_gluoncv.py``)
-- **00:37.764**: :ref:`sphx_glr_tutorials_frontend_deploy_prequantized.py` (``deploy_prequantized.py``)
-- **00:37.467**: :ref:`sphx_glr_tutorials_frontend_from_tensorflow.py` (``from_tensorflow.py``)
-- **00:25.952**: :ref:`sphx_glr_tutorials_frontend_from_tflite.py` (``from_tflite.py``)
-- **00:25.369**: :ref:`sphx_glr_tutorials_frontend_deploy_quantized.py` (``deploy_quantized.py``)
-- **00:21.631**: :ref:`sphx_glr_tutorials_frontend_from_darknet.py` (``from_darknet.py``)
-- **00:14.015**: :ref:`sphx_glr_tutorials_frontend_from_keras.py` (``from_keras.py``)
-- **00:13.645**: :ref:`sphx_glr_tutorials_frontend_from_caffe2.py` (``from_caffe2.py``)
-- **00:12.193**: :ref:`sphx_glr_tutorials_frontend_deploy_model_on_android.py` (``deploy_model_on_android.py``)
-- **00:11.887**: :ref:`sphx_glr_tutorials_frontend_deploy_model_on_rasp.py` (``deploy_model_on_rasp.py``)
-- **00:09.196**: :ref:`sphx_glr_tutorials_frontend_from_coreml.py` (``from_coreml.py``)
-- **00:09.104**: :ref:`sphx_glr_tutorials_frontend_from_pytorch.py` (``from_pytorch.py``)
-- **00:06.559**: :ref:`sphx_glr_tutorials_frontend_from_mxnet.py` (``from_mxnet.py``)
-- **00:05.489**: :ref:`sphx_glr_tutorials_frontend_build_gcn.py` (``build_gcn.py``)
-- **00:02.741**: :ref:`sphx_glr_tutorials_frontend_using_external_lib.py` (``using_external_lib.py``)
-- **00:02.172**: :ref:`sphx_glr_tutorials_frontend_from_onnx.py` (``from_onnx.py``)
-- **00:00.181**: :ref:`sphx_glr_tutorials_frontend_deploy_sparse.py` (``deploy_sparse.py``)
+- **02:34.312**: :ref:`sphx_glr_tutorials_frontend_deploy_prequantized_tflite.py` (``deploy_prequantized_tflite.py``)
+- **00:42.280**: :ref:`sphx_glr_tutorials_frontend_deploy_ssd_gluoncv.py` (``deploy_ssd_gluoncv.py``)
+- **00:39.364**: :ref:`sphx_glr_tutorials_frontend_deploy_prequantized.py` (``deploy_prequantized.py``)
+- **00:35.573**: :ref:`sphx_glr_tutorials_frontend_from_tensorflow.py` (``from_tensorflow.py``)
+- **00:24.883**: :ref:`sphx_glr_tutorials_frontend_from_tflite.py` (``from_tflite.py``)
+- **00:23.348**: :ref:`sphx_glr_tutorials_frontend_from_darknet.py` (``from_darknet.py``)
+- **00:21.929**: :ref:`sphx_glr_tutorials_frontend_deploy_quantized.py` (``deploy_quantized.py``)
+- **00:12.171**: :ref:`sphx_glr_tutorials_frontend_from_caffe2.py` (``from_caffe2.py``)
+- **00:12.107**: :ref:`sphx_glr_tutorials_frontend_deploy_model_on_rasp.py` (``deploy_model_on_rasp.py``)
+- **00:11.901**: :ref:`sphx_glr_tutorials_frontend_deploy_model_on_android.py` (``deploy_model_on_android.py``)
+- **00:09.434**: :ref:`sphx_glr_tutorials_frontend_from_keras.py` (``from_keras.py``)
+- **00:07.898**: :ref:`sphx_glr_tutorials_frontend_from_pytorch.py` (``from_pytorch.py``)
+- **00:07.219**: :ref:`sphx_glr_tutorials_frontend_from_coreml.py` (``from_coreml.py``)
+- **00:05.559**: :ref:`sphx_glr_tutorials_frontend_from_mxnet.py` (``from_mxnet.py``)
+- **00:05.502**: :ref:`sphx_glr_tutorials_frontend_build_gcn.py` (``build_gcn.py``)
+- **00:02.783**: :ref:`sphx_glr_tutorials_frontend_using_external_lib.py` (``using_external_lib.py``)
+- **00:01.489**: :ref:`sphx_glr_tutorials_frontend_from_onnx.py` (``from_onnx.py``)
+- **00:00.212**: :ref:`sphx_glr_tutorials_frontend_deploy_sparse.py` (``deploy_sparse.py``)
diff --git a/docs/_sources/tutorials/get_started/cross_compilation_and_rpc.rst.txt b/docs/_sources/tutorials/get_started/cross_compilation_and_rpc.rst.txt
new file mode 100644
index 0000000..c54b7e9
--- /dev/null
+++ b/docs/_sources/tutorials/get_started/cross_compilation_and_rpc.rst.txt
@@ -0,0 +1,340 @@
+.. note::
+    :class: sphx-glr-download-link-note
+
+    Click :ref:`here <sphx_glr_download_tutorials_get_started_cross_compilation_and_rpc.py>` to download the full example code
+.. rst-class:: sphx-glr-example-title
+
+.. _sphx_glr_tutorials_get_started_cross_compilation_and_rpc.py:
+
+
+.. _tutorial-cross-compilation-and-rpc:
+
+Cross Compilation and RPC
+=========================
+**Author**: `Ziheng Jiang <https://github.com/ZihengJiang/>`_, `Lianmin Zheng <https://github.com/merrymercy/>`_
+
+This tutorial introduces cross compilation and remote device
+execution with RPC in TVM.
+
+With cross compilation and RPC, you can **compile a program on your
+local machine then run it on the remote device**. It is useful when
+the remote device resource are limited, like Raspberry Pi and mobile
+platforms. In this tutorial, we will use the Raspberry Pi for a CPU example
+and the Firefly-RK3399 for an OpenCL example.
+
+Build TVM Runtime on Device
+---------------------------
+
+The first step is to build the TVM runtime on the remote device.
+
+.. note::
+
+  All instructions in both this section and the next section should be
+  executed on the target device, e.g. Raspberry Pi.  We assume the target
+  is running Linux.
+
+Since we do compilation on the local machine, the remote device is only used
+for running the generated code. We only need to build the TVM runtime on
+the remote device.
+
+.. code-block:: bash
+
+  git clone --recursive https://github.com/apache/incubator-tvm tvm
+  cd tvm
+  make runtime -j2
+
+After building the runtime successfully, we need to set environment variables
+in :code:`~/.bashrc` file. We can edit :code:`~/.bashrc`
+using :code:`vi ~/.bashrc` and add the line below (Assuming your TVM
+directory is in :code:`~/tvm`):
+
+.. code-block:: bash
+
+  export PYTHONPATH=$PYTHONPATH:~/tvm/python
+
+To update the environment variables, execute :code:`source ~/.bashrc`.
+
+Set Up RPC Server on Device
+---------------------------
+To start an RPC server, run the following command on your remote device
+(Which is Raspberry Pi in this example).
+
+  .. code-block:: bash
+
+    python -m tvm.exec.rpc_server --host 0.0.0.0 --port=9090
+
+If you see the line below, it means the RPC server started
+successfully on your device.
+
+   .. code-block:: bash
+
+     INFO:root:RPCServer: bind to 0.0.0.0:9090
+
+
+Declare and Cross Compile Kernel on Local Machine
+-------------------------------------------------
+
+.. note::
+
+  Now we go back to the local machine, which has a full TVM installed
+  (with LLVM).
+
+Here we will declare a simple kernel on the local machine:
+
+
+.. code-block:: default
+
+
+    import numpy as np
+
+    import tvm
+    from tvm import te
+    from tvm import rpc
+    from tvm.contrib import util
+
+    n = tvm.runtime.convert(1024)
+    A = te.placeholder((n,), name='A')
+    B = te.compute((n,), lambda i: A[i] + 1.0, name='B')
+    s = te.create_schedule(B.op)
+
+
+
+
+
+
+
+Then we cross compile the kernel.
+The target should be 'llvm -mtriple=armv7l-linux-gnueabihf' for
+Raspberry Pi 3B, but we use 'llvm' here to make this tutorial runnable
+on our webpage building server. See the detailed note in the following block.
+
+
+.. code-block:: default
+
+
+    local_demo = True
+
+    if local_demo:
+        target = 'llvm'
+    else:
+        target = 'llvm -mtriple=armv7l-linux-gnueabihf'
+
+    func = tvm.build(s, [A, B], target=target, name='add_one')
+    # save the lib at a local temp folder
+    temp = util.tempdir()
+    path = temp.relpath('lib.tar')
+    func.export_library(path)
+
+
+
+
+
+
+
+.. note::
+
+  To run this tutorial with a real remote device, change :code:`local_demo`
+  to False and replace :code:`target` in :code:`build` with the appropriate
+  target triple for your device. The target triple which might be
+  different for different devices. For example, it is
+  :code:`'llvm -mtriple=armv7l-linux-gnueabihf'` for Raspberry Pi 3B and
+  :code:`'llvm -mtriple=aarch64-linux-gnu'` for RK3399.
+
+  Usually, you can query the target by running :code:`gcc -v` on your
+  device, and looking for the line starting with :code:`Target:`
+  (Though it may still be a loose configuration.)
+
+  Besides :code:`-mtriple`, you can also set other compilation options
+  like:
+
+  * -mcpu=<cpuname>
+      Specify a specific chip in the current architecture to generate code for. By default this is inferred from the target triple and autodetected to the current architecture.
+  * -mattr=a1,+a2,-a3,...
+      Override or control specific attributes of the target, such as whether SIMD operations are enabled or not. The default set of attributes is set by the current CPU.
+      To get the list of available attributes, you can do:
+
+      .. code-block:: bash
+
+        llc -mtriple=<your device target triple> -mattr=help
+
+  These options are consistent with `llc <http://llvm.org/docs/CommandGuide/llc.html>`_.
+  It is recommended to set target triple and feature set to contain specific
+  feature available, so we can take full advantage of the features of the
+  board.
+  You can find more details about cross compilation attributes from
+  `LLVM guide of cross compilation <https://clang.llvm.org/docs/CrossCompilation.html>`_.
+
+Run CPU Kernel Remotely by RPC
+------------------------------
+We show how to run the generated CPU kernel on the remote device.
+First we obtain an RPC session from remote device.
+
+
+.. code-block:: default
+
+
+    if local_demo:
+        remote = rpc.LocalSession()
+    else:
+        # The following is my environment, change this to the IP address of your target device
+        host = '10.77.1.162'
+        port = 9090
+        remote = rpc.connect(host, port)
+
+
+
+
+
+
+
+Upload the lib to the remote device, then invoke a device local
+compiler to relink them. Now `func` is a remote module object.
+
+
+.. code-block:: default
+
+
+    remote.upload(path)
+    func = remote.load_module('lib.tar')
+
+    # create arrays on the remote device
+    ctx = remote.cpu()
+    a = tvm.nd.array(np.random.uniform(size=1024).astype(A.dtype), ctx)
+    b = tvm.nd.array(np.zeros(1024, dtype=A.dtype), ctx)
+    # the function will run on the remote device
+    func(a, b)
+    np.testing.assert_equal(b.asnumpy(), a.asnumpy() + 1)
+
+
+
+
+
+
+
+When you want to evaluate the performance of the kernel on the remote
+device, it is important to avoid the overhead of network.
+:code:`time_evaluator` will returns a remote function that runs the
+function over number times, measures the cost per run on the remote
+device and returns the measured cost. Network overhead is excluded.
+
+
+.. code-block:: default
+
+
+    time_f = func.time_evaluator(func.entry_name, ctx, number=10)
+    cost = time_f(a, b).mean
+    print('%g secs/op' % cost)
+
+
+
+
+
+.. rst-class:: sphx-glr-script-out
+
+ Out:
+
+ .. code-block:: none
+
+    2.165e-07 secs/op
+
+
+
+Run OpenCL Kernel Remotely by RPC
+---------------------------------
+For remote OpenCL devices, the workflow is almost the same as above.
+You can define the kernel, upload files, and run via RPC.
+
+.. note::
+
+   Raspberry Pi does not support OpenCL, the following code is tested on
+   Firefly-RK3399. You may follow this `tutorial <https://gist.github.com/mli/585aed2cec0b5178b1a510f9f236afa2>`_
+   to setup the OS and OpenCL driver for RK3399.
+
+   Also we need to build the runtime with OpenCL enabled on rk3399 board. In the TVM
+   root directory, execute
+
+.. code-block:: bash
+
+   cp cmake/config.cmake .
+   sed -i "s/USE_OPENCL OFF/USE_OPENCL ON/" config.cmake
+   make runtime -j4
+
+The following function shows how we run an OpenCL kernel remotely
+
+
+.. code-block:: default
+
+
+    def run_opencl():
+        # NOTE: This is the setting for my rk3399 board. You need to modify
+        # them according to your environment.
+        target_host = "llvm -mtriple=aarch64-linux-gnu"
+        opencl_device_host = '10.77.1.145'
+        opencl_device_port = 9090
+
+        # create schedule for the above "add one" compute declaration
+        s = te.create_schedule(B.op)
+        xo, xi = s[B].split(B.op.axis[0], factor=32)
+        s[B].bind(xo, te.thread_axis("blockIdx.x"))
+        s[B].bind(xi, te.thread_axis("threadIdx.x"))
+        func = tvm.build(s, [A, B], "opencl", target_host=target_host)
+
+        remote = rpc.connect(opencl_device_host, opencl_device_port)
+
+        # export and upload
+        path = temp.relpath('lib_cl.tar')
+        func.export_library(path)
+        remote.upload(path)
+        func = remote.load_module('lib_cl.tar')
+
+        # run
+        ctx = remote.cl()
+        a = tvm.nd.array(np.random.uniform(size=1024).astype(A.dtype), ctx)
+        b = tvm.nd.array(np.zeros(1024, dtype=A.dtype), ctx)
+        func(a, b)
+        np.testing.assert_equal(b.asnumpy(), a.asnumpy() + 1)
+        print("OpenCL test passed!")
+
+
+
+
+
+
+
+Summary
+-------
+This tutorial provides a walk through of cross compilation and RPC
+features in TVM.
+
+- Set up an RPC server on the remote device.
+- Set up the target device configuration to cross compile the kernels on the
+  local machine.
+- Upload and run the kernels remotely via the RPC API.
+
+
+.. _sphx_glr_download_tutorials_get_started_cross_compilation_and_rpc.py:
+
+
+.. only :: html
+
+ .. container:: sphx-glr-footer
+    :class: sphx-glr-footer-example
+
+
+
+  .. container:: sphx-glr-download
+
+     :download:`Download Python source code: cross_compilation_and_rpc.py <cross_compilation_and_rpc.py>`
+
+
+
+  .. container:: sphx-glr-download
+
+     :download:`Download Jupyter notebook: cross_compilation_and_rpc.ipynb <cross_compilation_and_rpc.ipynb>`
+
+
+.. only:: html
+
+ .. rst-class:: sphx-glr-signature
+
+    `Gallery generated by Sphinx-Gallery <https://sphinx-gallery.github.io>`_
diff --git a/docs/_sources/tutorials/get_started/relay_quick_start.rst.txt b/docs/_sources/tutorials/get_started/relay_quick_start.rst.txt
new file mode 100644
index 0000000..8d78298
--- /dev/null
+++ b/docs/_sources/tutorials/get_started/relay_quick_start.rst.txt
@@ -0,0 +1,366 @@
+.. note::
+    :class: sphx-glr-download-link-note
+
+    Click :ref:`here <sphx_glr_download_tutorials_get_started_relay_quick_start.py>` to download the full example code
+.. rst-class:: sphx-glr-example-title
+
+.. _sphx_glr_tutorials_get_started_relay_quick_start.py:
+
+
+.. _tutorial-relay-quick-start:
+
+Quick Start Tutorial for Compiling Deep Learning Models
+=======================================================
+**Author**: `Yao Wang <https://github.com/kevinthesun>`_, `Truman Tian <https://github.com/SiNZeRo>`_
+
+This example shows how to build a neural network with Relay python frontend and
+generates a runtime library for Nvidia GPU with TVM.
+Notice that you need to build TVM with cuda and llvm enabled.
+
+Overview for Supported Hardware Backend of TVM
+----------------------------------------------
+The image below shows hardware backend currently supported by TVM:
+
+.. image:: https://github.com/dmlc/web-data/raw/master/tvm/tutorial/tvm_support_list.png
+     :align: center
+
+In this tutorial, we'll choose cuda and llvm as target backends.
+To begin with, let's import Relay and TVM.
+
+
+.. code-block:: default
+
+
+    import numpy as np
+
+    from tvm import relay
+    from tvm.relay import testing
+    import tvm
+    from tvm import te
+    from tvm.contrib import graph_runtime
+
+
+
+
+
+
+
+Define Neural Network in Relay
+------------------------------
+First, let's define a neural network with relay python frontend.
+For simplicity, we'll use pre-defined resnet-18 network in Relay.
+Parameters are initialized with Xavier initializer.
+Relay also supports other model formats such as MXNet, CoreML, ONNX and
+Tensorflow.
+
+In this tutorial, we assume we will do inference on our device
+and the batch size is set to be 1. Input images are RGB color
+images of size 224 * 224. We can call the :any:`tvm.relay.TupleWrapper.astext()`
+to show the network structure.
+
+
+.. code-block:: default
+
+
+    batch_size = 1
+    num_class = 1000
+    image_shape = (3, 224, 224)
+    data_shape = (batch_size,) + image_shape
+    out_shape = (batch_size, num_class)
+
+    mod, params = relay.testing.resnet.get_workload(
+        num_layers=18, batch_size=batch_size, image_shape=image_shape)
+
+    # set show_meta_data=True if you want to show meta data
+    print(mod.astext(show_meta_data=False))
+
+
+
+
+
+.. rst-class:: sphx-glr-script-out
+
+ Out:
+
+ .. code-block:: none
+
+    v0.0.4
+    def @main(%data: Tensor[(1, 3, 224, 224), float32], %bn_data_gamma: Tensor[(3), float32], %bn_data_beta: Tensor[(3), float32], %bn_data_moving_mean: Tensor[(3), float32], %bn_data_moving_var: Tensor[(3), float32], %conv0_weight: Tensor[(64, 3, 7, 7), float32], %bn0_gamma: Tensor[(64), float32], %bn0_beta: Tensor[(64), float32], %bn0_moving_mean: Tensor[(64), float32], %bn0_moving_var: Tensor[(64), float32], %stage1_unit1_bn1_gamma: Tensor[(64), float32], %stage1_unit1_bn1_beta: Tenso [...]
+      %0 = nn.batch_norm(%data, %bn_data_gamma, %bn_data_beta, %bn_data_moving_mean, %bn_data_moving_var, epsilon=2e-05f, scale=False) /* ty=(Tensor[(1, 3, 224, 224), float32], Tensor[(3), float32], Tensor[(3), float32]) */;
+      %1 = %0.0;
+      %2 = nn.conv2d(%1, %conv0_weight, strides=[2, 2], padding=[3, 3, 3, 3], channels=64, kernel_size=[7, 7]) /* ty=Tensor[(1, 64, 112, 112), float32] */;
+      %3 = nn.batch_norm(%2, %bn0_gamma, %bn0_beta, %bn0_moving_mean, %bn0_moving_var, epsilon=2e-05f) /* ty=(Tensor[(1, 64, 112, 112), float32], Tensor[(64), float32], Tensor[(64), float32]) */;
+      %4 = %3.0;
+      %5 = nn.relu(%4) /* ty=Tensor[(1, 64, 112, 112), float32] */;
+      %6 = nn.max_pool2d(%5, pool_size=[3, 3], strides=[2, 2], padding=[1, 1, 1, 1]) /* ty=Tensor[(1, 64, 56, 56), float32] */;
+      %7 = nn.batch_norm(%6, %stage1_unit1_bn1_gamma, %stage1_unit1_bn1_beta, %stage1_unit1_bn1_moving_mean, %stage1_unit1_bn1_moving_var, epsilon=2e-05f) /* ty=(Tensor[(1, 64, 56, 56), float32], Tensor[(64), float32], Tensor[(64), float32]) */;
+      %8 = %7.0;
+      %9 = nn.relu(%8) /* ty=Tensor[(1, 64, 56, 56), float32] */;
+      %10 = nn.conv2d(%9, %stage1_unit1_conv1_weight, padding=[1, 1, 1, 1], channels=64, kernel_size=[3, 3]) /* ty=Tensor[(1, 64, 56, 56), float32] */;
+      %11 = nn.batch_norm(%10, %stage1_unit1_bn2_gamma, %stage1_unit1_bn2_beta, %stage1_unit1_bn2_moving_mean, %stage1_unit1_bn2_moving_var, epsilon=2e-05f) /* ty=(Tensor[(1, 64, 56, 56), float32], Tensor[(64), float32], Tensor[(64), float32]) */;
+      %12 = %11.0;
+      %13 = nn.relu(%12) /* ty=Tensor[(1, 64, 56, 56), float32] */;
+      %14 = nn.conv2d(%13, %stage1_unit1_conv2_weight, padding=[1, 1, 1, 1], channels=64, kernel_size=[3, 3]) /* ty=Tensor[(1, 64, 56, 56), float32] */;
+      %15 = nn.conv2d(%9, %stage1_unit1_sc_weight, padding=[0, 0, 0, 0], channels=64, kernel_size=[1, 1]) /* ty=Tensor[(1, 64, 56, 56), float32] */;
+      %16 = add(%14, %15) /* ty=Tensor[(1, 64, 56, 56), float32] */;
+      %17 = nn.batch_norm(%16, %stage1_unit2_bn1_gamma, %stage1_unit2_bn1_beta, %stage1_unit2_bn1_moving_mean, %stage1_unit2_bn1_moving_var, epsilon=2e-05f) /* ty=(Tensor[(1, 64, 56, 56), float32], Tensor[(64), float32], Tensor[(64), float32]) */;
+      %18 = %17.0;
+      %19 = nn.relu(%18) /* ty=Tensor[(1, 64, 56, 56), float32] */;
+      %20 = nn.conv2d(%19, %stage1_unit2_conv1_weight, padding=[1, 1, 1, 1], channels=64, kernel_size=[3, 3]) /* ty=Tensor[(1, 64, 56, 56), float32] */;
+      %21 = nn.batch_norm(%20, %stage1_unit2_bn2_gamma, %stage1_unit2_bn2_beta, %stage1_unit2_bn2_moving_mean, %stage1_unit2_bn2_moving_var, epsilon=2e-05f) /* ty=(Tensor[(1, 64, 56, 56), float32], Tensor[(64), float32], Tensor[(64), float32]) */;
+      %22 = %21.0;
+      %23 = nn.relu(%22) /* ty=Tensor[(1, 64, 56, 56), float32] */;
+      %24 = nn.conv2d(%23, %stage1_unit2_conv2_weight, padding=[1, 1, 1, 1], channels=64, kernel_size=[3, 3]) /* ty=Tensor[(1, 64, 56, 56), float32] */;
+      %25 = add(%24, %16) /* ty=Tensor[(1, 64, 56, 56), float32] */;
+      %26 = nn.batch_norm(%25, %stage2_unit1_bn1_gamma, %stage2_unit1_bn1_beta, %stage2_unit1_bn1_moving_mean, %stage2_unit1_bn1_moving_var, epsilon=2e-05f) /* ty=(Tensor[(1, 64, 56, 56), float32], Tensor[(64), float32], Tensor[(64), float32]) */;
+      %27 = %26.0;
+      %28 = nn.relu(%27) /* ty=Tensor[(1, 64, 56, 56), float32] */;
+      %29 = nn.conv2d(%28, %stage2_unit1_conv1_weight, strides=[2, 2], padding=[1, 1, 1, 1], channels=128, kernel_size=[3, 3]) /* ty=Tensor[(1, 128, 28, 28), float32] */;
+      %30 = nn.batch_norm(%29, %stage2_unit1_bn2_gamma, %stage2_unit1_bn2_beta, %stage2_unit1_bn2_moving_mean, %stage2_unit1_bn2_moving_var, epsilon=2e-05f) /* ty=(Tensor[(1, 128, 28, 28), float32], Tensor[(128), float32], Tensor[(128), float32]) */;
+      %31 = %30.0;
+      %32 = nn.relu(%31) /* ty=Tensor[(1, 128, 28, 28), float32] */;
+      %33 = nn.conv2d(%32, %stage2_unit1_conv2_weight, padding=[1, 1, 1, 1], channels=128, kernel_size=[3, 3]) /* ty=Tensor[(1, 128, 28, 28), float32] */;
+      %34 = nn.conv2d(%28, %stage2_unit1_sc_weight, strides=[2, 2], padding=[0, 0, 0, 0], channels=128, kernel_size=[1, 1]) /* ty=Tensor[(1, 128, 28, 28), float32] */;
+      %35 = add(%33, %34) /* ty=Tensor[(1, 128, 28, 28), float32] */;
+      %36 = nn.batch_norm(%35, %stage2_unit2_bn1_gamma, %stage2_unit2_bn1_beta, %stage2_unit2_bn1_moving_mean, %stage2_unit2_bn1_moving_var, epsilon=2e-05f) /* ty=(Tensor[(1, 128, 28, 28), float32], Tensor[(128), float32], Tensor[(128), float32]) */;
+      %37 = %36.0;
+      %38 = nn.relu(%37) /* ty=Tensor[(1, 128, 28, 28), float32] */;
+      %39 = nn.conv2d(%38, %stage2_unit2_conv1_weight, padding=[1, 1, 1, 1], channels=128, kernel_size=[3, 3]) /* ty=Tensor[(1, 128, 28, 28), float32] */;
+      %40 = nn.batch_norm(%39, %stage2_unit2_bn2_gamma, %stage2_unit2_bn2_beta, %stage2_unit2_bn2_moving_mean, %stage2_unit2_bn2_moving_var, epsilon=2e-05f) /* ty=(Tensor[(1, 128, 28, 28), float32], Tensor[(128), float32], Tensor[(128), float32]) */;
+      %41 = %40.0;
+      %42 = nn.relu(%41) /* ty=Tensor[(1, 128, 28, 28), float32] */;
+      %43 = nn.conv2d(%42, %stage2_unit2_conv2_weight, padding=[1, 1, 1, 1], channels=128, kernel_size=[3, 3]) /* ty=Tensor[(1, 128, 28, 28), float32] */;
+      %44 = add(%43, %35) /* ty=Tensor[(1, 128, 28, 28), float32] */;
+      %45 = nn.batch_norm(%44, %stage3_unit1_bn1_gamma, %stage3_unit1_bn1_beta, %stage3_unit1_bn1_moving_mean, %stage3_unit1_bn1_moving_var, epsilon=2e-05f) /* ty=(Tensor[(1, 128, 28, 28), float32], Tensor[(128), float32], Tensor[(128), float32]) */;
+      %46 = %45.0;
+      %47 = nn.relu(%46) /* ty=Tensor[(1, 128, 28, 28), float32] */;
+      %48 = nn.conv2d(%47, %stage3_unit1_conv1_weight, strides=[2, 2], padding=[1, 1, 1, 1], channels=256, kernel_size=[3, 3]) /* ty=Tensor[(1, 256, 14, 14), float32] */;
+      %49 = nn.batch_norm(%48, %stage3_unit1_bn2_gamma, %stage3_unit1_bn2_beta, %stage3_unit1_bn2_moving_mean, %stage3_unit1_bn2_moving_var, epsilon=2e-05f) /* ty=(Tensor[(1, 256, 14, 14), float32], Tensor[(256), float32], Tensor[(256), float32]) */;
+      %50 = %49.0;
+      %51 = nn.relu(%50) /* ty=Tensor[(1, 256, 14, 14), float32] */;
+      %52 = nn.conv2d(%51, %stage3_unit1_conv2_weight, padding=[1, 1, 1, 1], channels=256, kernel_size=[3, 3]) /* ty=Tensor[(1, 256, 14, 14), float32] */;
+      %53 = nn.conv2d(%47, %stage3_unit1_sc_weight, strides=[2, 2], padding=[0, 0, 0, 0], channels=256, kernel_size=[1, 1]) /* ty=Tensor[(1, 256, 14, 14), float32] */;
+      %54 = add(%52, %53) /* ty=Tensor[(1, 256, 14, 14), float32] */;
+      %55 = nn.batch_norm(%54, %stage3_unit2_bn1_gamma, %stage3_unit2_bn1_beta, %stage3_unit2_bn1_moving_mean, %stage3_unit2_bn1_moving_var, epsilon=2e-05f) /* ty=(Tensor[(1, 256, 14, 14), float32], Tensor[(256), float32], Tensor[(256), float32]) */;
+      %56 = %55.0;
+      %57 = nn.relu(%56) /* ty=Tensor[(1, 256, 14, 14), float32] */;
+      %58 = nn.conv2d(%57, %stage3_unit2_conv1_weight, padding=[1, 1, 1, 1], channels=256, kernel_size=[3, 3]) /* ty=Tensor[(1, 256, 14, 14), float32] */;
+      %59 = nn.batch_norm(%58, %stage3_unit2_bn2_gamma, %stage3_unit2_bn2_beta, %stage3_unit2_bn2_moving_mean, %stage3_unit2_bn2_moving_var, epsilon=2e-05f) /* ty=(Tensor[(1, 256, 14, 14), float32], Tensor[(256), float32], Tensor[(256), float32]) */;
+      %60 = %59.0;
+      %61 = nn.relu(%60) /* ty=Tensor[(1, 256, 14, 14), float32] */;
+      %62 = nn.conv2d(%61, %stage3_unit2_conv2_weight, padding=[1, 1, 1, 1], channels=256, kernel_size=[3, 3]) /* ty=Tensor[(1, 256, 14, 14), float32] */;
+      %63 = add(%62, %54) /* ty=Tensor[(1, 256, 14, 14), float32] */;
+      %64 = nn.batch_norm(%63, %stage4_unit1_bn1_gamma, %stage4_unit1_bn1_beta, %stage4_unit1_bn1_moving_mean, %stage4_unit1_bn1_moving_var, epsilon=2e-05f) /* ty=(Tensor[(1, 256, 14, 14), float32], Tensor[(256), float32], Tensor[(256), float32]) */;
+      %65 = %64.0;
+      %66 = nn.relu(%65) /* ty=Tensor[(1, 256, 14, 14), float32] */;
+      %67 = nn.conv2d(%66, %stage4_unit1_conv1_weight, strides=[2, 2], padding=[1, 1, 1, 1], channels=512, kernel_size=[3, 3]) /* ty=Tensor[(1, 512, 7, 7), float32] */;
+      %68 = nn.batch_norm(%67, %stage4_unit1_bn2_gamma, %stage4_unit1_bn2_beta, %stage4_unit1_bn2_moving_mean, %stage4_unit1_bn2_moving_var, epsilon=2e-05f) /* ty=(Tensor[(1, 512, 7, 7), float32], Tensor[(512), float32], Tensor[(512), float32]) */;
+      %69 = %68.0;
+      %70 = nn.relu(%69) /* ty=Tensor[(1, 512, 7, 7), float32] */;
+      %71 = nn.conv2d(%70, %stage4_unit1_conv2_weight, padding=[1, 1, 1, 1], channels=512, kernel_size=[3, 3]) /* ty=Tensor[(1, 512, 7, 7), float32] */;
+      %72 = nn.conv2d(%66, %stage4_unit1_sc_weight, strides=[2, 2], padding=[0, 0, 0, 0], channels=512, kernel_size=[1, 1]) /* ty=Tensor[(1, 512, 7, 7), float32] */;
+      %73 = add(%71, %72) /* ty=Tensor[(1, 512, 7, 7), float32] */;
+      %74 = nn.batch_norm(%73, %stage4_unit2_bn1_gamma, %stage4_unit2_bn1_beta, %stage4_unit2_bn1_moving_mean, %stage4_unit2_bn1_moving_var, epsilon=2e-05f) /* ty=(Tensor[(1, 512, 7, 7), float32], Tensor[(512), float32], Tensor[(512), float32]) */;
+      %75 = %74.0;
+      %76 = nn.relu(%75) /* ty=Tensor[(1, 512, 7, 7), float32] */;
+      %77 = nn.conv2d(%76, %stage4_unit2_conv1_weight, padding=[1, 1, 1, 1], channels=512, kernel_size=[3, 3]) /* ty=Tensor[(1, 512, 7, 7), float32] */;
+      %78 = nn.batch_norm(%77, %stage4_unit2_bn2_gamma, %stage4_unit2_bn2_beta, %stage4_unit2_bn2_moving_mean, %stage4_unit2_bn2_moving_var, epsilon=2e-05f) /* ty=(Tensor[(1, 512, 7, 7), float32], Tensor[(512), float32], Tensor[(512), float32]) */;
+      %79 = %78.0;
+      %80 = nn.relu(%79) /* ty=Tensor[(1, 512, 7, 7), float32] */;
+      %81 = nn.conv2d(%80, %stage4_unit2_conv2_weight, padding=[1, 1, 1, 1], channels=512, kernel_size=[3, 3]) /* ty=Tensor[(1, 512, 7, 7), float32] */;
+      %82 = add(%81, %73) /* ty=Tensor[(1, 512, 7, 7), float32] */;
+      %83 = nn.batch_norm(%82, %bn1_gamma, %bn1_beta, %bn1_moving_mean, %bn1_moving_var, epsilon=2e-05f) /* ty=(Tensor[(1, 512, 7, 7), float32], Tensor[(512), float32], Tensor[(512), float32]) */;
+      %84 = %83.0;
+      %85 = nn.relu(%84) /* ty=Tensor[(1, 512, 7, 7), float32] */;
+      %86 = nn.global_avg_pool2d(%85) /* ty=Tensor[(1, 512, 1, 1), float32] */;
+      %87 = nn.batch_flatten(%86) /* ty=Tensor[(1, 512), float32] */;
+      %88 = nn.dense(%87, %fc1_weight, units=1000) /* ty=Tensor[(1, 1000), float32] */;
+      %89 = nn.bias_add(%88, %fc1_bias, axis=-1) /* ty=Tensor[(1, 1000), float32] */;
+      nn.softmax(%89) /* ty=Tensor[(1, 1000), float32] */
+    }
+
+
+
+
+Compilation
+-----------
+Next step is to compile the model using the Relay/TVM pipeline.
+Users can specify the optimization level of the compilation.
+Currently this value can be 0 to 3. The optimization passes include
+operator fusion, pre-computation, layout transformation and so on.
+
+:py:func:`relay.build` returns three components: the execution graph in
+json format, the TVM module library of compiled functions specifically
+for this graph on the target hardware, and the parameter blobs of
+the model. During the compilation, Relay does the graph-level
+optimization while TVM does the tensor-level optimization, resulting
+in an optimized runtime module for model serving.
+
+We'll first compile for Nvidia GPU. Behind the scene, :py:func:`relay.build`
+first does a number of graph-level optimizations, e.g. pruning, fusing, etc.,
+then registers the operators (i.e. the nodes of the optimized graphs) to
+TVM implementations to generate a `tvm.module`.
+To generate the module library, TVM will first transfer the high level IR
+into the lower intrinsic IR of the specified target backend, which is CUDA
+in this example. Then the machine code will be generated as the module library.
+
+
+.. code-block:: default
+
+
+    opt_level = 3
+    target = tvm.target.cuda()
+    with tvm.transform.PassContext(opt_level=opt_level):
+        graph, lib, params = relay.build(mod, target, params=params)
+
+
+
+
+
+.. rst-class:: sphx-glr-script-out
+
+ Out:
+
+ .. code-block:: none
+
+
    ...1%, 0.01 MB, 30 KB/s, 0 seconds passed
    ...3%, 0.02 MB, 60 KB/s, 0 seconds passed
    ...5%, 0.02 MB, 90 KB/s, 0 seconds passed
    ...7%, 0.03 MB, 119 KB/s, 0 seconds passed
    ...9%, 0.04 MB, 149 KB/s, 0 seconds passed
    ...11%, 0.05 MB, 179 KB/s, 0 seconds passed
    ...13%, 0.05 MB, 208 KB/s, 0 seconds passed
    ...15%, 0.06 MB, 238 KB/s, 0 seconds passed
    ...17%, 0.07 MB, 267 KB/s, 0 seconds passed
    ...19%, 0.08 MB, 296 KB/s, 0 seconds passed
    ...21%, 0.09 MB, 326 KB/s, 0 seconds passed
    ...23%, 0.09 MB, 355 KB/s, 0 seconds passed
    ...25%, 0.10 MB, 384 KB/s, 0 seconds passed
    ...27%, 0.11 MB, 413 KB/s, 0 seconds passed
    ...29%, 0.12 MB, 442 KB/s, 0 seconds passed
    ...31%, 0.12 MB, 471 KB/s, 0 seconds passed
    ...33%, 0.13 MB, 500 KB/s, 0 seconds passed
    ...35%, 0.14 MB, 529 KB/s, 0 seconds passed
    ...37%, 0.15 MB, 557 KB/s, 0 seconds passed
    ...39%, 0.16 MB, 586 KB/s, 0 seconds passed
    ...41%, 0.16 MB, 615 KB/s, 0 seconds pas
 sed
    ...43%, 0.17 MB, 644 KB/s, 0 seconds passed
    ...45%, 0.18 MB, 672 KB/s, 0 seconds passed
    ...47%, 0.19 MB, 701 KB/s, 0 seconds passed
    ...49%, 0.20 MB, 729 KB/s, 0 seconds passed
    ...51%, 0.20 MB, 758 KB/s, 0 seconds passed
    ...53%, 0.21 MB, 786 KB/s, 0 seconds passed
    ...55%, 0.22 MB, 814 KB/s, 0 seconds passed
    ...57%, 0.23 MB, 843 KB/s, 0 seconds passed
    ...59%, 0.23 MB, 871 KB/s, 0 seconds passed
    ...61%, 0.24 MB, 899 KB/s, 0 seconds passed
    ...63%, 0.25 MB, 927 KB/s, 0 seconds passed
    ...65%, 0.26 MB, 956 KB/s, 0 seconds passed
    ...67%, 0.27 MB, 983 KB/s, 0 seconds passed
    ...69%, 0.27 MB, 1012 KB/s, 0 seconds passed
    ...71%, 0.28 MB, 1040 KB/s, 0 seconds passed
    ...73%, 0.29 MB, 1068 KB/s, 0 seconds passed
    ...75%, 0.30 MB, 1095 KB/s, 0 seconds passed
    ...77%, 0.30 MB, 1124 KB/s, 0 seconds passed
    ...79%, 0.31 MB, 1151 KB/s, 0 seconds passed
    ...81%, 0.32 MB, 1180 KB/s, 0 seconds passed
    ...83%, 0.33 MB, 1206 
 KB/s, 0 seconds passed
    ...85%, 0.34 MB, 1234 KB/s, 0 seconds passed
    ...87%, 0.34 MB, 1263 KB/s, 0 seconds passed
    ...89%, 0.35 MB, 1291 KB/s, 0 seconds passed
    ...91%, 0.36 MB, 1317 KB/s, 0 seconds passed
    ...93%, 0.37 MB, 1345 KB/s, 0 seconds passed
    ...95%, 0.38 MB, 1373 KB/s, 0 seconds passed
    ...97%, 0.38 MB, 1402 KB/s, 0 seconds passed
    ...99%, 0.39 MB, 1429 KB/s, 0 seconds passed
    ...100%, 0.40 MB, 1456 KB/s, 0 seconds passed
+    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -model=unknown -thread_warp_size=32, workload=('dense_small_batch.cuda', ('TENSOR', (1, 512), 'float32'), ('TENSOR', (1000, 512), 'float32'), None, 'float32'). A fallback configuration is used, which may bring great performance regression.
+
+
+
+Run the generate library
+------------------------
+Now we can create graph runtime and run the module on Nvidia GPU.
+
+
+.. code-block:: default
+
+
+    # create random input
+    ctx = tvm.gpu()
+    data = np.random.uniform(-1, 1, size=data_shape).astype("float32")
+    # create module
+    module = graph_runtime.create(graph, lib, ctx)
+    # set input and parameters
+    module.set_input("data", data)
+    module.set_input(**params)
+    # run
+    module.run()
+    # get output
+    out = module.get_output(0, tvm.nd.empty(out_shape)).asnumpy()
+
+    # Print first 10 elements of output
+    print(out.flatten()[0:10])
+
+
+
+
+
+.. rst-class:: sphx-glr-script-out
+
+ Out:
+
+ .. code-block:: none
+
+    [0.00089283 0.00103331 0.0009094  0.00102275 0.00108751 0.00106737
+     0.00106262 0.00095838 0.00110792 0.00113151]
+
+
+
+Save and Load Compiled Module
+-----------------------------
+We can also save the graph, lib and parameters into files and load them
+back in deploy environment.
+
+
+.. code-block:: default
+
+
+    # save the graph, lib and params into separate files
+    from tvm.contrib import util
+
+    temp = util.tempdir()
+    path_lib = temp.relpath("deploy_lib.tar")
+    lib.export_library(path_lib)
+    with open(temp.relpath("deploy_graph.json"), "w") as fo:
+        fo.write(graph)
+    with open(temp.relpath("deploy_param.params"), "wb") as fo:
+        fo.write(relay.save_param_dict(params))
+    print(temp.listdir())
+
+
+
+
+
+.. rst-class:: sphx-glr-script-out
+
+ Out:
+
+ .. code-block:: none
+
+    ['deploy_lib.tar', 'deploy_param.params', 'deploy_graph.json']
+
+
+
+
+.. code-block:: default
+
+
+    # load the module back.
+    loaded_json = open(temp.relpath("deploy_graph.json")).read()
+    loaded_lib = tvm.runtime.load_module(path_lib)
+    loaded_params = bytearray(open(temp.relpath("deploy_param.params"), "rb").read())
+    input_data = tvm.nd.array(np.random.uniform(size=data_shape).astype("float32"))
+
+    module = graph_runtime.create(loaded_json, loaded_lib, ctx)
+    module.load_params(loaded_params)
+    module.run(data=input_data)
+    out_deploy = module.get_output(0).asnumpy()
+
+    # Print first 10 elements of output
+    print(out_deploy.flatten()[0:10])
+
+    # check whether the output from deployed module is consistent with original one
+    tvm.testing.assert_allclose(out_deploy, out, atol=1e-3)
+
+
+
+
+.. rst-class:: sphx-glr-script-out
+
+ Out:
+
+ .. code-block:: none
+
+    [0.00090713 0.00105705 0.00094459 0.00103146 0.00110017 0.00105846
+     0.00104143 0.00095862 0.0010827  0.00111618]
+
+
+
+
+.. _sphx_glr_download_tutorials_get_started_relay_quick_start.py:
+
+
+.. only :: html
+
+ .. container:: sphx-glr-footer
+    :class: sphx-glr-footer-example
+
+
+
+  .. container:: sphx-glr-download
+
+     :download:`Download Python source code: relay_quick_start.py <relay_quick_start.py>`
+
+
+
+  .. container:: sphx-glr-download
+
+     :download:`Download Jupyter notebook: relay_quick_start.ipynb <relay_quick_start.ipynb>`
+
+
+.. only:: html
+
+ .. rst-class:: sphx-glr-signature
+
+    `Gallery generated by Sphinx-Gallery <https://sphinx-gallery.github.io>`_
diff --git a/docs/_sources/tutorials/get_started/sg_execution_times.rst.txt b/docs/_sources/tutorials/get_started/sg_execution_times.rst.txt
new file mode 100644
index 0000000..5ba5da9
--- /dev/null
+++ b/docs/_sources/tutorials/get_started/sg_execution_times.rst.txt
@@ -0,0 +1,12 @@
+
+:orphan:
+
+.. _sphx_glr_tutorials_get_started_sg_execution_times:
+
+Computation times
+=================
+**00:10.604** total execution time for **tutorials_get_started** files:
+
+- **00:10.090**: :ref:`sphx_glr_tutorials_get_started_relay_quick_start.py` (``relay_quick_start.py``)
+- **00:00.370**: :ref:`sphx_glr_tutorials_get_started_tensor_expr_get_started.py` (``tensor_expr_get_started.py``)
+- **00:00.144**: :ref:`sphx_glr_tutorials_get_started_cross_compilation_and_rpc.py` (``cross_compilation_and_rpc.py``)
diff --git a/docs/_sources/tutorials/get_started/tensor_expr_get_started.rst.txt b/docs/_sources/tutorials/get_started/tensor_expr_get_started.rst.txt
new file mode 100644
index 0000000..eb64516
--- /dev/null
+++ b/docs/_sources/tutorials/get_started/tensor_expr_get_started.rst.txt
@@ -0,0 +1,476 @@
+.. note::
+    :class: sphx-glr-download-link-note
+
+    Click :ref:`here <sphx_glr_download_tutorials_get_started_tensor_expr_get_started.py>` to download the full example code
+.. rst-class:: sphx-glr-example-title
+
+.. _sphx_glr_tutorials_get_started_tensor_expr_get_started.py:
+
+
+.. _tutorial-tensor-expr-get-started:
+
+Get Started with Tensor Expression
+==================================
+**Author**: `Tianqi Chen <https://tqchen.github.io>`_
+
+This is an introductory tutorial to the Tensor expression language in TVM.
+TVM uses a domain specific tensor expression for efficient kernel construction.
+
+In this tutorial, we will demonstrate the basic workflow to use
+the tensor expression language.
+
+
+.. code-block:: default
+
+    from __future__ import absolute_import, print_function
+
+    import tvm
+    from tvm import te
+    import numpy as np
+
+    # Global declarations of environment.
+
+    tgt_host="llvm"
+    # Change it to respective GPU if gpu is enabled Ex: cuda, opencl, rocm
+    tgt="cuda"
+
+
+
+
+
+
+
+Vector Add Example
+------------------
+In this tutorial, we will use a vector addition example to demonstrate
+the workflow.
+
+
+Describe the Computation
+------------------------
+As a first step, we need to describe our computation.
+TVM adopts tensor semantics, with each intermediate result
+represented as a multi-dimensional array. The user needs to describe
+the computation rule that generates the tensors.
+
+We first define a symbolic variable n to represent the shape.
+We then define two placeholder Tensors, A and B, with given shape (n,)
+
+We then describe the result tensor C, with a compute operation.  The
+compute function takes the shape of the tensor, as well as a lambda
+function that describes the computation rule for each position of
+the tensor.
+
+No computation happens during this phase, as we are only declaring how
+the computation should be done.
+
+
+
+.. code-block:: default
+
+    n = te.var("n")
+    A = te.placeholder((n,), name='A')
+    B = te.placeholder((n,), name='B')
+    C = te.compute(A.shape, lambda i: A[i] + B[i], name="C")
+    print(type(C))
+
+
+
+
+
+.. rst-class:: sphx-glr-script-out
+
+ Out:
+
+ .. code-block:: none
+
+    <class 'tvm.te.tensor.Tensor'>
+
+
+
+Schedule the Computation
+------------------------
+While the above lines describe the computation rule, we can compute
+C in many ways since the axis of C can be computed in a data
+parallel manner.  TVM asks the user to provide a description of the
+computation called a schedule.
+
+A schedule is a set of transformation of computation that transforms
+the loop of computations in the program.
+
+After we construct the schedule, by default the schedule computes
+C in a serial manner in a row-major order.
+
+.. code-block:: c
+
+  for (int i = 0; i < n; ++i) {
+    C[i] = A[i] + B[i];
+  }
+
+
+
+.. code-block:: default
+
+    s = te.create_schedule(C.op)
+
+
+
+
+
+
+
+We used the split construct to split the first axis of C,
+this will split the original iteration axis into product of
+two iterations. This is equivalent to the following code.
+
+.. code-block:: c
+
+  for (int bx = 0; bx < ceil(n / 64); ++bx) {
+    for (int tx = 0; tx < 64; ++tx) {
+      int i = bx * 64 + tx;
+      if (i < n) {
+        C[i] = A[i] + B[i];
+      }
+    }
+  }
+
+
+
+.. code-block:: default
+
+    bx, tx = s[C].split(C.op.axis[0], factor=64)
+
+
+
+
+
+
+
+Finally we bind the iteration axis bx and tx to threads in the GPU
+compute grid. These are GPU specific constructs that allow us
+to generate code that runs on GPU.
+
+
+
+.. code-block:: default
+
+    if tgt == "cuda" or tgt == "rocm" or tgt.startswith('opencl'):
+      s[C].bind(bx, te.thread_axis("blockIdx.x"))
+      s[C].bind(tx, te.thread_axis("threadIdx.x"))
+
+
+
+
+
+
+
+Compilation
+-----------
+After we have finished specifying the schedule, we can compile it
+into a TVM function. By default TVM compiles into a type-erased
+function that can be directly called from the python side.
+
+In the following line, we use tvm.build to create a function.
+The build function takes the schedule, the desired signature of the
+function (including the inputs and outputs) as well as target language
+we want to compile to.
+
+The result of compilation fadd is a GPU device function (if GPU is
+involved) as well as a host wrapper that calls into the GPU
+function.  fadd is the generated host wrapper function, it contains
+a reference to the generated device function internally.
+
+
+
+.. code-block:: default
+
+    fadd = tvm.build(s, [A, B, C], tgt, target_host=tgt_host, name="myadd")
+
+
+
+
+
+
+
+Run the Function
+----------------
+The compiled TVM function is exposes a concise C API
+that can be invoked from any language.
+
+We provide a minimal array API in python to aid quick testing and prototyping.
+The array API is based on the `DLPack <https://github.com/dmlc/dlpack>`_ standard.
+
+- We first create a GPU context.
+- Then tvm.nd.array copies the data to the GPU.
+- fadd runs the actual computation.
+- asnumpy() copies the GPU array back to the CPU and we can use this to verify correctness
+
+
+
+.. code-block:: default
+
+    ctx = tvm.context(tgt, 0)
+
+    n = 1024
+    a = tvm.nd.array(np.random.uniform(size=n).astype(A.dtype), ctx)
+    b = tvm.nd.array(np.random.uniform(size=n).astype(B.dtype), ctx)
+    c = tvm.nd.array(np.zeros(n, dtype=C.dtype), ctx)
+    fadd(a, b, c)
+    tvm.testing.assert_allclose(c.asnumpy(), a.asnumpy() + b.asnumpy())
+
+
+
+
+
+
+
+Inspect the Generated Code
+--------------------------
+You can inspect the generated code in TVM. The result of tvm.build
+is a TVM Module. fadd is the host module that contains the host wrapper,
+it also contains a device module for the CUDA (GPU) function.
+
+The following code fetches the device module and prints the content code.
+
+
+
+.. code-block:: default
+
+    if tgt == "cuda" or tgt == "rocm" or tgt.startswith('opencl'):
+        dev_module = fadd.imported_modules[0]
+        print("-----GPU code-----")
+        print(dev_module.get_source())
+    else:
+        print(fadd.get_source())
+
+
+
+
+
+.. rst-class:: sphx-glr-script-out
+
+ Out:
+
+ .. code-block:: none
+
+    -----GPU code-----
+    extern "C" __global__ void myadd_kernel0(void* __restrict__ C, void* __restrict__ A, void* __restrict__ B, int n, int stride, int stride1, int stride2) {
+      if (((int)blockIdx.x) < (n >> 6)) {
+        ((float*)C)[((((((int)blockIdx.x) * 64) + ((int)threadIdx.x)) * stride2))] = (((float*)A)[((((((int)blockIdx.x) * 64) + ((int)threadIdx.x)) * stride))] + ((float*)B)[((((((int)blockIdx.x) * 64) + ((int)threadIdx.x)) * stride1))]);
+      } else {
+        if (((((int)blockIdx.x) * 64) + ((int)threadIdx.x)) < n) {
+          ((float*)C)[((((((int)blockIdx.x) * 64) + ((int)threadIdx.x)) * stride2))] = (((float*)A)[((((((int)blockIdx.x) * 64) + ((int)threadIdx.x)) * stride))] + ((float*)B)[((((((int)blockIdx.x) * 64) + ((int)threadIdx.x)) * stride1))]);
+        }
+      }
+    }
+
+
+
+
+
+.. note:: Code Specialization
+
+  As you may have noticed, the declarations of A, B and C all
+  take the same shape argument, n. TVM will take advantage of this
+  to pass only a single shape argument to the kernel, as you will find in
+  the printed device code. This is one form of specialization.
+
+  On the host side, TVM will automatically generate check code
+  that checks the constraints in the parameters. So if you pass
+  arrays with different shapes into fadd, an error will be raised.
+
+  We can do more specializations. For example, we can write
+  :code:`n = tvm.runtime.convert(1024)` instead of :code:`n = te.var("n")`,
+  in the computation declaration. The generated function will
+  only take vectors with length 1024.
+
+
+Save Compiled Module
+--------------------
+Besides runtime compilation, we can save the compiled modules into
+a file and load them back later. This is called ahead of time compilation.
+
+The following code first performs the following steps:
+
+- It saves the compiled host module into an object file.
+- Then it saves the device module into a ptx file.
+- cc.create_shared calls a compiler (gcc) to create a shared library
+
+
+
+.. code-block:: default
+
+    from tvm.contrib import cc
+    from tvm.contrib import util
+
+    temp = util.tempdir()
+    fadd.save(temp.relpath("myadd.o"))
+    if tgt == "cuda":
+        fadd.imported_modules[0].save(temp.relpath("myadd.ptx"))
+    if tgt == "rocm":
+        fadd.imported_modules[0].save(temp.relpath("myadd.hsaco"))
+    if tgt.startswith('opencl'):
+        fadd.imported_modules[0].save(temp.relpath("myadd.cl"))
+    cc.create_shared(temp.relpath("myadd.so"), [temp.relpath("myadd.o")])
+    print(temp.listdir())
+
+
+
+
+
+.. rst-class:: sphx-glr-script-out
+
+ Out:
+
+ .. code-block:: none
+
+    ['myadd.tvm_meta.json', 'myadd.so', 'myadd.ptx', 'myadd.o']
+
+
+
+.. note:: Module Storage Format
+
+  The CPU (host) module is directly saved as a shared library (.so).
+  There can be multiple customized formats of the device code.
+  In our example, the device code is stored in ptx, as well as a meta
+  data json file. They can be loaded and linked separately via import.
+
+
+Load Compiled Module
+--------------------
+We can load the compiled module from the file system and run the code.
+The following code loads the host and device module separately and
+re-links them together. We can verify that the newly loaded function works.
+
+
+
+.. code-block:: default
+
+    fadd1 = tvm.runtime.load_module(temp.relpath("myadd.so"))
+    if tgt == "cuda":
+        fadd1_dev = tvm.runtime.load_module(temp.relpath("myadd.ptx"))
+        fadd1.import_module(fadd1_dev)
+
+    if tgt == "rocm":
+        fadd1_dev = tvm.runtime.load_module(temp.relpath("myadd.hsaco"))
+        fadd1.import_module(fadd1_dev)
+
+    if tgt.startswith('opencl'):
+        fadd1_dev = tvm.runtime.load_module(temp.relpath("myadd.cl"))
+        fadd1.import_module(fadd1_dev)
+
+    fadd1(a, b, c)
+    tvm.testing.assert_allclose(c.asnumpy(), a.asnumpy() + b.asnumpy())
+
+
+
+
+
+
+
+Pack Everything into One Library
+--------------------------------
+In the above example, we store the device and host code separately.
+TVM also supports export everything as one shared library.
+Under the hood, we pack the device modules into binary blobs and link
+them together with the host code.
+Currently we support packing of Metal, OpenCL and CUDA modules.
+
+
+
+.. code-block:: default
+
+    fadd.export_library(temp.relpath("myadd_pack.so"))
+    fadd2 = tvm.runtime.load_module(temp.relpath("myadd_pack.so"))
+    fadd2(a, b, c)
+    tvm.testing.assert_allclose(c.asnumpy(), a.asnumpy() + b.asnumpy())
+
+
+
+
+
+
+
+.. note:: Runtime API and Thread-Safety
+
+  The compiled modules of TVM do not depend on the TVM compiler.
+  Instead, they only depend on a minimum runtime library.
+  The TVM runtime library wraps the device drivers and provides
+  thread-safe and device agnostic calls into the compiled functions.
+
+  This means that you can call the compiled TVM functions from any thread,
+  on any GPUs.
+
+
+Generate OpenCL Code
+--------------------
+TVM provides code generation features into multiple backends,
+we can also generate OpenCL code or LLVM code that runs on CPU backends.
+
+The following code blocks generate OpenCL code, creates array on an OpenCL
+device, and verifies the correctness of the code.
+
+
+
+.. code-block:: default
+
+    if tgt.startswith('opencl'):
+        fadd_cl = tvm.build(s, [A, B, C], tgt, name="myadd")
+        print("------opencl code------")
+        print(fadd_cl.imported_modules[0].get_source())
+        ctx = tvm.cl(0)
+        n = 1024
+        a = tvm.nd.array(np.random.uniform(size=n).astype(A.dtype), ctx)
+        b = tvm.nd.array(np.random.uniform(size=n).astype(B.dtype), ctx)
+        c = tvm.nd.array(np.zeros(n, dtype=C.dtype), ctx)
+        fadd_cl(a, b, c)
+        tvm.testing.assert_allclose(c.asnumpy(), a.asnumpy() + b.asnumpy())
+
+
+
+
+
+
+
+Summary
+-------
+This tutorial provides a walk through of TVM workflow using
+a vector add example. The general workflow is
+
+- Describe your computation via a series of operations.
+- Describe how we want to compute use schedule primitives.
+- Compile to the target function we want.
+- Optionally, save the function to be loaded later.
+
+You are more than welcome to checkout other examples and
+tutorials to learn more about the supported operations, scheduling primitives
+and other features in TVM.
+
+
+
+.. _sphx_glr_download_tutorials_get_started_tensor_expr_get_started.py:
+
+
+.. only :: html
+
+ .. container:: sphx-glr-footer
+    :class: sphx-glr-footer-example
+
+
+
+  .. container:: sphx-glr-download
+
+     :download:`Download Python source code: tensor_expr_get_started.py <tensor_expr_get_started.py>`
+
+
+
+  .. container:: sphx-glr-download
+
+     :download:`Download Jupyter notebook: tensor_expr_get_started.ipynb <tensor_expr_get_started.ipynb>`
+
+
+.. only:: html
+
+ .. rst-class:: sphx-glr-signature
+
+    `Gallery generated by Sphinx-Gallery <https://sphinx-gallery.github.io>`_
diff --git a/docs/_sources/tutorials/index.rst.txt b/docs/_sources/tutorials/index.rst.txt
index d77c32c..40a8f65 100644
--- a/docs/_sources/tutorials/index.rst.txt
+++ b/docs/_sources/tutorials/index.rst.txt
@@ -4,9 +4,19 @@
 
 .. _sphx_glr_tutorials:
 
-Tutorials
-=========
-This page contains the tutorials about TVM.
+
+
+
+.. raw:: html
+
+    <div style='clear:both'></div>
+
+
+
+.. _sphx_glr_tutorials_get_started:
+
+Get Started Tutorials
+---------------------
 
 
 
@@ -16,9 +26,9 @@ This page contains the tutorials about TVM.
 
 .. only:: html
 
-    .. figure:: /tutorials/images/thumb/sphx_glr_relay_quick_start_thumb.png
+    .. figure:: /tutorials/get_started/images/thumb/sphx_glr_relay_quick_start_thumb.png
 
-        :ref:`sphx_glr_tutorials_relay_quick_start.py`
+        :ref:`sphx_glr_tutorials_get_started_relay_quick_start.py`
 
 .. raw:: html
 
@@ -28,7 +38,7 @@ This page contains the tutorials about TVM.
 .. toctree::
    :hidden:
 
-   /tutorials/relay_quick_start
+   /tutorials/get_started/relay_quick_start
 
 .. raw:: html
 
@@ -36,9 +46,9 @@ This page contains the tutorials about TVM.
 
 .. only:: html
 
-    .. figure:: /tutorials/images/thumb/sphx_glr_cross_compilation_and_rpc_thumb.png
+    .. figure:: /tutorials/get_started/images/thumb/sphx_glr_cross_compilation_and_rpc_thumb.png
 
-        :ref:`sphx_glr_tutorials_cross_compilation_and_rpc.py`
+        :ref:`sphx_glr_tutorials_get_started_cross_compilation_and_rpc.py`
 
 .. raw:: html
 
@@ -48,7 +58,7 @@ This page contains the tutorials about TVM.
 .. toctree::
    :hidden:
 
-   /tutorials/cross_compilation_and_rpc
+   /tutorials/get_started/cross_compilation_and_rpc
 
 .. raw:: html
 
@@ -56,9 +66,9 @@ This page contains the tutorials about TVM.
 
 .. only:: html
 
-    .. figure:: /tutorials/images/thumb/sphx_glr_tensor_expr_get_started_thumb.png
+    .. figure:: /tutorials/get_started/images/thumb/sphx_glr_tensor_expr_get_started_thumb.png
 
-        :ref:`sphx_glr_tutorials_tensor_expr_get_started.py`
+        :ref:`sphx_glr_tutorials_get_started_tensor_expr_get_started.py`
 
 .. raw:: html
 
@@ -68,7 +78,7 @@ This page contains the tutorials about TVM.
 .. toctree::
    :hidden:
 
-   /tutorials/tensor_expr_get_started
+   /tutorials/get_started/tensor_expr_get_started
 .. raw:: html
 
     <div style='clear:both'></div>
diff --git a/docs/_sources/tutorials/language/reduction.rst.txt b/docs/_sources/tutorials/language/reduction.rst.txt
index 33fc22c..5938d1e 100644
--- a/docs/_sources/tutorials/language/reduction.rst.txt
+++ b/docs/_sources/tutorials/language/reduction.rst.txt
@@ -412,8 +412,8 @@ Here is an example for 2D convolution with filter size = [3, 3] and strides = [1
 
     primfn(Input_1: handle, Filter_1: handle, Output_1: handle) -> ()
       attr = {"global_symbol": "main", "tir.noalias": True}
-      buffers = {Filter: Buffer(Filter_2: handle, float32, [3, 3], []),
-                 Output: Buffer(Output_2: handle, float32, [(n: int32 - 2), (n - 2)], []),
+      buffers = {Output: Buffer(Output_2: handle, float32, [(n: int32 - 2), (n - 2)], []),
+                 Filter: Buffer(Filter_2: handle, float32, [3, 3], []),
                  Input: Buffer(Input_2: handle, float32, [n, n], [stride: int32, stride_1: int32], type="auto")}
       buffer_map = {Input_1: Input, Filter_1: Filter, Output_1: Output} {
       for (i: int32, 0, (n - 2)) {
diff --git a/docs/_sources/tutorials/language/schedule_primitives.rst.txt b/docs/_sources/tutorials/language/schedule_primitives.rst.txt
index 3a63f3f..17a1490 100644
--- a/docs/_sources/tutorials/language/schedule_primitives.rst.txt
+++ b/docs/_sources/tutorials/language/schedule_primitives.rst.txt
@@ -85,13 +85,13 @@ schedule computes tensor in a serial manner in a row-major order.
 
     primfn(A_1: handle, B_1: handle, C_1: handle) -> ()
       attr = {"global_symbol": "main", "tir.noalias": True}
-      buffers = {B: Buffer(B_2: handle, float32, [m: int32, n: int32], [stride: int32, stride_1: int32], type="auto"),
-                 C: Buffer(C_2: handle, float32, [m, n], [stride_2: int32, stride_3: int32], type="auto"),
+      buffers = {C: Buffer(C_2: handle, float32, [m: int32, n: int32], [stride: int32, stride_1: int32], type="auto"),
+                 B: Buffer(B_2: handle, float32, [m, n], [stride_2: int32, stride_3: int32], type="auto"),
                  A: Buffer(A_2: handle, float32, [m, n], [stride_4: int32, stride_5: int32], type="auto")}
       buffer_map = {A_1: A, B_1: B, C_1: C} {
       for (i: int32, 0, m) {
         for (j: int32, 0, n) {
-          C_2[((i*stride_2) + (j*stride_3))] = ((float32*)A_2[((i*stride_4) + (j*stride_5))]*(float32*)B_2[((i*stride) + (j*stride_1))])
+          C_2[((i*stride) + (j*stride_1))] = ((float32*)A_2[((i*stride_4) + (j*stride_5))]*(float32*)B_2[((i*stride_2) + (j*stride_3))])
         }
       }
     }
@@ -407,15 +407,15 @@ tensors at the root separately by default.
 
     primfn(A_1: handle, B_1: handle, C_1: handle) -> ()
       attr = {"global_symbol": "main", "tir.noalias": True}
-      buffers = {B: Buffer(B_2: handle, float32, [m: int32], [stride: int32], type="auto"),
-                 C: Buffer(C_2: handle, float32, [m], [stride_1: int32], type="auto"),
+      buffers = {C: Buffer(C_2: handle, float32, [m: int32], [stride: int32], type="auto"),
+                 B: Buffer(B_2: handle, float32, [m], [stride_1: int32], type="auto"),
                  A: Buffer(A_2: handle, float32, [m], [stride_2: int32], type="auto")}
       buffer_map = {A_1: A, B_1: B, C_1: C} {
       for (i: int32, 0, m) {
-        B_2[(i*stride)] = ((float32*)A_2[(i*stride_2)] + 1f32)
+        B_2[(i*stride_1)] = ((float32*)A_2[(i*stride_2)] + 1f32)
       }
       for (i_1: int32, 0, m) {
-        C_2[(i_1*stride_1)] = ((float32*)B_2[(i_1*stride)]*2f32)
+        C_2[(i_1*stride)] = ((float32*)B_2[(i_1*stride_1)]*2f32)
       }
     }
 
diff --git a/docs/_sources/tutorials/language/sg_execution_times.rst.txt b/docs/_sources/tutorials/language/sg_execution_times.rst.txt
index 5ab5927..daf0e61 100644
--- a/docs/_sources/tutorials/language/sg_execution_times.rst.txt
+++ b/docs/_sources/tutorials/language/sg_execution_times.rst.txt
@@ -5,13 +5,13 @@
 
 Computation times
 =================
-**00:04.380** total execution time for **tutorials_language** files:
+**00:04.886** total execution time for **tutorials_language** files:
 
-- **00:01.597**: :ref:`sphx_glr_tutorials_language_intrin_math.py` (``intrin_math.py``)
-- **00:00.776**: :ref:`sphx_glr_tutorials_language_tensorize.py` (``tensorize.py``)
-- **00:00.576**: :ref:`sphx_glr_tutorials_language_scan.py` (``scan.py``)
-- **00:00.551**: :ref:`sphx_glr_tutorials_language_reduction.py` (``reduction.py``)
-- **00:00.285**: :ref:`sphx_glr_tutorials_language_extern_op.py` (``extern_op.py``)
-- **00:00.226**: :ref:`sphx_glr_tutorials_language_schedule_primitives.py` (``schedule_primitives.py``)
-- **00:00.199**: :ref:`sphx_glr_tutorials_language_tedd.py` (``tedd.py``)
-- **00:00.169**: :ref:`sphx_glr_tutorials_language_tuple_inputs.py` (``tuple_inputs.py``)
+- **00:01.799**: :ref:`sphx_glr_tutorials_language_intrin_math.py` (``intrin_math.py``)
+- **00:00.883**: :ref:`sphx_glr_tutorials_language_tensorize.py` (``tensorize.py``)
+- **00:00.702**: :ref:`sphx_glr_tutorials_language_reduction.py` (``reduction.py``)
+- **00:00.635**: :ref:`sphx_glr_tutorials_language_scan.py` (``scan.py``)
+- **00:00.292**: :ref:`sphx_glr_tutorials_language_extern_op.py` (``extern_op.py``)
+- **00:00.196**: :ref:`sphx_glr_tutorials_language_schedule_primitives.py` (``schedule_primitives.py``)
+- **00:00.189**: :ref:`sphx_glr_tutorials_language_tedd.py` (``tedd.py``)
+- **00:00.189**: :ref:`sphx_glr_tutorials_language_tuple_inputs.py` (``tuple_inputs.py``)
diff --git a/docs/_sources/tutorials/language/tensorize.rst.txt b/docs/_sources/tutorials/language/tensorize.rst.txt
index ef21c94..fdd8e6f 100644
--- a/docs/_sources/tutorials/language/tensorize.rst.txt
+++ b/docs/_sources/tutorials/language/tensorize.rst.txt
@@ -236,8 +236,8 @@ such placeholder can be put to let TVM automatically bind the inferred value for
 
     primfn(A_1: handle, B_1: handle, C_1: handle) -> ()
       attr = {"global_symbol": "main", "tir.noalias": True}
-      buffers = {B: Buffer(B_2: handle, float32, [512, 64], []),
-                 C: Buffer(C_2: handle, float32, [1024, 512], []),
+      buffers = {C: Buffer(C_2: handle, float32, [1024, 512], []),
+                 B: Buffer(B_2: handle, float32, [512, 64], []),
                  A: Buffer(A_2: handle, float32, [1024, 64], [])}
       buffer_map = {A_1: A, B_1: B, C_1: C} {
       for (i: int32, 0, 1024) {
@@ -310,8 +310,8 @@ The importing needs to happen before the tensorized GEMV being executed.
                  B: Buffer(B_2: handle, float32, [512, 64], []),
                  A: Buffer(A_2: handle, float32, [1024, 64], [])}
       buffer_map = {A_1: A, B_1: B, C_1: C} {
-      attr [IterVar(i: int32, (nullptr), "DataPar", "")] "pragma_import_llvm" = "; ModuleID = '/tmp/tmppkc5n6yq/input0.cc'
-    source_filename = "/tmp/tmppkc5n6yq/input0.cc"
+      attr [IterVar(i: int32, (nullptr), "DataPar", "")] "pragma_import_llvm" = "; ModuleID = '/tmp/tmp5q4wbz2s/input0.cc'
+    source_filename = "/tmp/tmp5q4wbz2s/input0.cc"
     target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
     target triple = "x86_64-pc-linux-gnu"
 
diff --git a/docs/_sources/tutorials/language/tuple_inputs.rst.txt b/docs/_sources/tutorials/language/tuple_inputs.rst.txt
index 2207efc..f0ece51 100644
--- a/docs/_sources/tutorials/language/tuple_inputs.rst.txt
+++ b/docs/_sources/tutorials/language/tuple_inputs.rst.txt
@@ -64,15 +64,15 @@ together in the next schedule procedure.
 
     primfn(A0_1: handle, A1_1: handle, B.v0_1: handle, B.v1_1: handle) -> ()
       attr = {"global_symbol": "main", "tir.noalias": True}
-      buffers = {B.v1: Buffer(B.v1_2: handle, float32, [m: int32, n: int32], [stride: int32, stride_1: int32], type="auto"),
-                 B.v0: Buffer(B.v0_2: handle, float32, [m, n], [stride_2: int32, stride_3: int32], type="auto"),
-                 A1: Buffer(A1_2: handle, float32, [m, n], [stride_4: int32, stride_5: int32], type="auto"),
+      buffers = {B.v0: Buffer(B.v0_2: handle, float32, [m: int32, n: int32], [stride: int32, stride_1: int32], type="auto"),
+                 A1: Buffer(A1_2: handle, float32, [m, n], [stride_2: int32, stride_3: int32], type="auto"),
+                 B.v1: Buffer(B.v1_2: handle, float32, [m, n], [stride_4: int32, stride_5: int32], type="auto"),
                  A0: Buffer(A0_2: handle, float32, [m, n], [stride_6: int32, stride_7: int32], type="auto")}
       buffer_map = {A0_1: A0, A1_1: A1, B.v0_1: B.v0, B.v1_1: B.v1} {
       for (i: int32, 0, m) {
         for (j: int32, 0, n) {
-          B.v0_2[((i*stride_2) + (j*stride_3))] = ((float32*)A0_2[((i*stride_6) + (j*stride_7))] + 2f32)
-          B.v1_2[((i*stride) + (j*stride_1))] = ((float32*)A1_2[((i*stride_4) + (j*stride_5))]*3f32)
+          B.v0_2[((i*stride) + (j*stride_1))] = ((float32*)A0_2[((i*stride_6) + (j*stride_7))] + 2f32)
+          B.v1_2[((i*stride_4) + (j*stride_5))] = ((float32*)A1_2[((i*stride_2) + (j*stride_3))]*3f32)
         }
       }
     }
@@ -133,17 +133,17 @@ with :py:func:`te.comm_reducer` as below:
 
     primfn(idx_1: handle, val_1: handle, T.v0_1: handle, T.v1_1: handle) -> ()
       attr = {"global_symbol": "main", "tir.noalias": True}
-      buffers = {T.v0: Buffer(T.v0_2: handle, int32, [m: int32], [stride: int32], type="auto"),
-                 T.v1: Buffer(T.v1_2: handle, int32, [m], [stride_1: int32], type="auto"),
-                 val: Buffer(val_2: handle, int32, [m, n: int32], [stride_2: int32, stride_3: int32], type="auto"),
+      buffers = {val: Buffer(val_2: handle, int32, [m: int32, n: int32], [stride: int32, stride_1: int32], type="auto"),
+                 T.v1: Buffer(T.v1_2: handle, int32, [m], [stride_2: int32], type="auto"),
+                 T.v0: Buffer(T.v0_2: handle, int32, [m], [stride_3: int32], type="auto"),
                  idx: Buffer(idx_2: handle, int32, [m, n], [stride_4: int32, stride_5: int32], type="auto")}
       buffer_map = {idx_1: idx, val_1: val, T.v0_1: T.v0, T.v1_1: T.v1} {
       for (i: int32, 0, m) {
-        T.v0_2[(i*stride)] = -1
-        T.v1_2[(i*stride_1)] = -2147483648
+        T.v0_2[(i*stride_3)] = -1
+        T.v1_2[(i*stride_2)] = -2147483648
         for (k: int32, 0, n) {
-          T.v0_2[(i*stride)] = @tir.if_then_else(((int32*)val_2[((i*stride_2) + (k*stride_3))] <= (int32*)T.v1_2[(i*stride_1)]), (int32*)T.v0_2[(i*stride)], (int32*)idx_2[((i*stride_4) + (k*stride_5))], dtype=int32)
-          T.v1_2[(i*stride_1)] = @tir.if_then_else(((int32*)val_2[((i*stride_2) + (k*stride_3))] <= (int32*)T.v1_2[(i*stride_1)]), (int32*)T.v1_2[(i*stride_1)], (int32*)val_2[((i*stride_2) + (k*stride_3))], dtype=int32)
+          T.v0_2[(i*stride_3)] = @tir.if_then_else(((int32*)val_2[((i*stride) + (k*stride_1))] <= (int32*)T.v1_2[(i*stride_2)]), (int32*)T.v0_2[(i*stride_3)], (int32*)idx_2[((i*stride_4) + (k*stride_5))], dtype=int32)
+          T.v1_2[(i*stride_2)] = @tir.if_then_else(((int32*)val_2[((i*stride) + (k*stride_1))] <= (int32*)T.v1_2[(i*stride_2)]), (int32*)T.v1_2[(i*stride_2)], (int32*)val_2[((i*stride) + (k*stride_1))], dtype=int32)
         }
       }
     }
@@ -191,8 +191,8 @@ in terms of operation.
 
     primfn(A0_1: handle, A1_1: handle, C_1: handle) -> ()
       attr = {"global_symbol": "main", "tir.noalias": True}
-      buffers = {C: Buffer(C_2: handle, float32, [m: int32, n: int32], [stride: int32, stride_1: int32], type="auto"),
-                 A1: Buffer(A1_2: handle, float32, [m, n], [stride_2: int32, stride_3: int32], type="auto"),
+      buffers = {A1: Buffer(A1_2: handle, float32, [m: int32, n: int32], [stride: int32, stride_1: int32], type="auto"),
+                 C: Buffer(C_2: handle, float32, [m, n], [stride_2: int32, stride_3: int32], type="auto"),
                  A0: Buffer(A0_2: handle, float32, [m, n], [stride_4: int32, stride_5: int32], type="auto")}
       buffer_map = {A0_1: A0, A1_1: A1, C_1: C} {
       attr [B.v0: handle] "storage_scope" = "global";
@@ -205,7 +205,7 @@ in terms of operation.
           B.v1[j] = ((float32*)A0_2[((i*stride_4) + (j*stride_5))]*3f32)
         }
         for (j_1: int32, 0, n) {
-          C_2[((i*stride) + (j_1*stride_1))] = ((float32*)A1_2[((i*stride_2) + (j_1*stride_3))] + (float32*)B.v0[j_1])
+          C_2[((i*stride_2) + (j_1*stride_3))] = ((float32*)A1_2[((i*stride) + (j_1*stride_1))] + (float32*)B.v0[j_1])
         }
       }
     }
diff --git a/docs/_sources/tutorials/micro/sg_execution_times.rst.txt b/docs/_sources/tutorials/micro/sg_execution_times.rst.txt
index c87cd81..7a1d651 100644
--- a/docs/_sources/tutorials/micro/sg_execution_times.rst.txt
+++ b/docs/_sources/tutorials/micro/sg_execution_times.rst.txt
@@ -5,6 +5,6 @@
 
 Computation times
 =================
-**00:00.205** total execution time for **tutorials_micro** files:
+**00:00.179** total execution time for **tutorials_micro** files:
 
-- **00:00.205**: :ref:`sphx_glr_tutorials_micro_micro_tflite.py` (``micro_tflite.py``)
+- **00:00.179**: :ref:`sphx_glr_tutorials_micro_micro_tflite.py` (``micro_tflite.py``)
diff --git a/docs/_sources/tutorials/optimize/opt_conv_cuda.rst.txt b/docs/_sources/tutorials/optimize/opt_conv_cuda.rst.txt
index db8ee8f..94fcc46 100644
--- a/docs/_sources/tutorials/optimize/opt_conv_cuda.rst.txt
+++ b/docs/_sources/tutorials/optimize/opt_conv_cuda.rst.txt
@@ -293,7 +293,7 @@ latency of convolution.
 
  .. code-block:: none
 
-    Convolution: 53.268910 ms
+    Convolution: 19.603491 ms
 
 
 
diff --git a/docs/_sources/tutorials/optimize/opt_conv_tensorcore.rst.txt b/docs/_sources/tutorials/optimize/opt_conv_tensorcore.rst.txt
index 9f1bac2..d8135bb 100644
--- a/docs/_sources/tutorials/optimize/opt_conv_tensorcore.rst.txt
+++ b/docs/_sources/tutorials/optimize/opt_conv_tensorcore.rst.txt
@@ -342,8 +342,8 @@ one time.
 
     primfn(A_1: handle, W_1: handle, Conv_1: handle) -> ()
       attr = {"global_symbol": "main", "tir.noalias": True}
-      buffers = {Conv: Buffer(Conv_2: handle, float32, [16, 14, 14, 32, 16, 16], []),
-                 W: Buffer(W_2: handle, float16, [3, 3, 16, 32, 16, 16], []),
+      buffers = {W: Buffer(W_2: handle, float16, [3, 3, 16, 32, 16, 16], []),
+                 Conv: Buffer(Conv_2: handle, float32, [16, 14, 14, 32, 16, 16], []),
                  A: Buffer(A_2: handle, float16, [16, 14, 14, 16, 16, 16], [])}
       buffer_map = {A_1: A, W_1: W, Conv_1: Conv} {
       attr [IterVar(blockIdx.z: int32, (nullptr), "ThreadIndex", "blockIdx.z")] "thread_extent" = 196;
@@ -563,7 +563,7 @@ be able to run on our build server
 
  .. code-block:: none
 
-    conv2d with tensor core: 13.194863 ms
+    conv2d with tensor core: 6.289936 ms
 
 
 
diff --git a/docs/_sources/tutorials/optimize/opt_gemm.rst.txt b/docs/_sources/tutorials/optimize/opt_gemm.rst.txt
index c6bd55f..3a0cef0 100644
--- a/docs/_sources/tutorials/optimize/opt_gemm.rst.txt
+++ b/docs/_sources/tutorials/optimize/opt_gemm.rst.txt
@@ -118,8 +118,8 @@ Then we write a baseline implementation, the simplest way to write a matrix mult
 
  .. code-block:: none
 
-    Numpy running time: 0.009676
-    Baseline: 3.525708
+    Numpy running time: 0.010951
+    Baseline: 6.107657
 
 
 
@@ -206,7 +206,7 @@ fill 32 * 32 * sizeof(float) which is 4KB in the cache whose total size is 32KB
 
  .. code-block:: none
 
-    Opt1: 0.296598
+    Opt1: 0.185950
 
 
 
@@ -300,7 +300,7 @@ In this tutorial, we chose to vectorize the inner loop row data since it is cach
 
  .. code-block:: none
 
-    Opt2: 0.333919
+    Opt2: 0.168257
 
 
 
@@ -389,7 +389,7 @@ the access pattern for A matrix is more cache friendly.
 
  .. code-block:: none
 
-    Opt3: 0.116871
+    Opt3: 0.066846
 
 
 
@@ -497,7 +497,7 @@ the corresponding value from the packed array.
 
  .. code-block:: none
 
-    Opt4: 0.106136
+    Opt4: 0.069126
 
 
 
@@ -521,8 +521,8 @@ Here is the generated IR after array packing.
 
     primfn(A_1: handle, B_1: handle, C_1: handle) -> ()
       attr = {"global_symbol": "main", "tir.noalias": True}
-      buffers = {C: Buffer(C_2: handle, float32, [1024, 1024], []),
-                 B: Buffer(B_2: handle, float32, [1024, 1024], []),
+      buffers = {B: Buffer(B_2: handle, float32, [1024, 1024], []),
+                 C: Buffer(C_2: handle, float32, [1024, 1024], []),
                  A: Buffer(A_2: handle, float32, [1024, 1024], [])}
       buffer_map = {A_1: A, B_1: B, C_1: C} {
       attr [packedB: handle] "storage_scope" = "global";
@@ -607,7 +607,7 @@ write to C when all the block results are ready.
 
  .. code-block:: none
 
-    Opt5: 0.098469
+    Opt5: 0.097400
 
 
 
@@ -723,7 +723,7 @@ Futhermore, we can also utilize multi-core processors to do the thread-level par
 
  .. code-block:: none
 
-    Opt6: 0.032362
+    Opt6: 0.032785
 
 
 
diff --git a/docs/_sources/tutorials/optimize/sg_execution_times.rst.txt b/docs/_sources/tutorials/optimize/sg_execution_times.rst.txt
index 57dd9e7..b59854d 100644
--- a/docs/_sources/tutorials/optimize/sg_execution_times.rst.txt
+++ b/docs/_sources/tutorials/optimize/sg_execution_times.rst.txt
@@ -5,9 +5,9 @@
 
 Computation times
 =================
-**00:28.099** total execution time for **tutorials_optimize** files:
+**00:30.231** total execution time for **tutorials_optimize** files:
 
-- **00:25.746**: :ref:`sphx_glr_tutorials_optimize_opt_gemm.py` (``opt_gemm.py``)
-- **00:01.180**: :ref:`sphx_glr_tutorials_optimize_opt_conv_tensorcore.py` (``opt_conv_tensorcore.py``)
-- **00:00.975**: :ref:`sphx_glr_tutorials_optimize_opt_conv_cuda.py` (``opt_conv_cuda.py``)
-- **00:00.197**: :ref:`sphx_glr_tutorials_optimize_opt_matmul_auto_tensorcore.py` (``opt_matmul_auto_tensorcore.py``)
+- **00:27.609**: :ref:`sphx_glr_tutorials_optimize_opt_gemm.py` (``opt_gemm.py``)
+- **00:01.581**: :ref:`sphx_glr_tutorials_optimize_opt_conv_tensorcore.py` (``opt_conv_tensorcore.py``)
+- **00:00.830**: :ref:`sphx_glr_tutorials_optimize_opt_conv_cuda.py` (``opt_conv_cuda.py``)
+- **00:00.211**: :ref:`sphx_glr_tutorials_optimize_opt_matmul_auto_tensorcore.py` (``opt_matmul_auto_tensorcore.py``)
diff --git a/docs/_sources/tutorials/relay_quick_start.rst.txt b/docs/_sources/tutorials/relay_quick_start.rst.txt
deleted file mode 100644
index 5107a05..0000000
--- a/docs/_sources/tutorials/relay_quick_start.rst.txt
+++ /dev/null
@@ -1,366 +0,0 @@
-.. note::
-    :class: sphx-glr-download-link-note
-
-    Click :ref:`here <sphx_glr_download_tutorials_relay_quick_start.py>` to download the full example code
-.. rst-class:: sphx-glr-example-title
-
-.. _sphx_glr_tutorials_relay_quick_start.py:
-
-
-.. _tutorial-relay-quick-start:
-
-Quick Start Tutorial for Compiling Deep Learning Models
-=======================================================
-**Author**: `Yao Wang <https://github.com/kevinthesun>`_, `Truman Tian <https://github.com/SiNZeRo>`_
-
-This example shows how to build a neural network with Relay python frontend and
-generates a runtime library for Nvidia GPU with TVM.
-Notice that you need to build TVM with cuda and llvm enabled.
-
-Overview for Supported Hardware Backend of TVM
-----------------------------------------------
-The image below shows hardware backend currently supported by TVM:
-
-.. image:: https://github.com/dmlc/web-data/raw/master/tvm/tutorial/tvm_support_list.png
-     :align: center
-
-In this tutorial, we'll choose cuda and llvm as target backends.
-To begin with, let's import Relay and TVM.
-
-
-.. code-block:: default
-
-
-    import numpy as np
-
-    from tvm import relay
-    from tvm.relay import testing
-    import tvm
-    from tvm import te
-    from tvm.contrib import graph_runtime
-
-
-
-
-
-
-
-Define Neural Network in Relay
-------------------------------
-First, let's define a neural network with relay python frontend.
-For simplicity, we'll use pre-defined resnet-18 network in Relay.
-Parameters are initialized with Xavier initializer.
-Relay also supports other model formats such as MXNet, CoreML, ONNX and
-Tensorflow.
-
-In this tutorial, we assume we will do inference on our device
-and the batch size is set to be 1. Input images are RGB color
-images of size 224 * 224. We can call the :any:`tvm.relay.TupleWrapper.astext()`
-to show the network structure.
-
-
-.. code-block:: default
-
-
-    batch_size = 1
-    num_class = 1000
-    image_shape = (3, 224, 224)
-    data_shape = (batch_size,) + image_shape
-    out_shape = (batch_size, num_class)
-
-    mod, params = relay.testing.resnet.get_workload(
-        num_layers=18, batch_size=batch_size, image_shape=image_shape)
-
-    # set show_meta_data=True if you want to show meta data
-    print(mod.astext(show_meta_data=False))
-
-
-
-
-
-.. rst-class:: sphx-glr-script-out
-
- Out:
-
- .. code-block:: none
-
-    v0.0.4
-    def @main(%data: Tensor[(1, 3, 224, 224), float32], %bn_data_gamma: Tensor[(3), float32], %bn_data_beta: Tensor[(3), float32], %bn_data_moving_mean: Tensor[(3), float32], %bn_data_moving_var: Tensor[(3), float32], %conv0_weight: Tensor[(64, 3, 7, 7), float32], %bn0_gamma: Tensor[(64), float32], %bn0_beta: Tensor[(64), float32], %bn0_moving_mean: Tensor[(64), float32], %bn0_moving_var: Tensor[(64), float32], %stage1_unit1_bn1_gamma: Tensor[(64), float32], %stage1_unit1_bn1_beta: Tenso [...]
-      %0 = nn.batch_norm(%data, %bn_data_gamma, %bn_data_beta, %bn_data_moving_mean, %bn_data_moving_var, epsilon=2e-05f, scale=False) /* ty=(Tensor[(1, 3, 224, 224), float32], Tensor[(3), float32], Tensor[(3), float32]) */;
-      %1 = %0.0;
-      %2 = nn.conv2d(%1, %conv0_weight, strides=[2, 2], padding=[3, 3, 3, 3], channels=64, kernel_size=[7, 7]) /* ty=Tensor[(1, 64, 112, 112), float32] */;
-      %3 = nn.batch_norm(%2, %bn0_gamma, %bn0_beta, %bn0_moving_mean, %bn0_moving_var, epsilon=2e-05f) /* ty=(Tensor[(1, 64, 112, 112), float32], Tensor[(64), float32], Tensor[(64), float32]) */;
-      %4 = %3.0;
-      %5 = nn.relu(%4) /* ty=Tensor[(1, 64, 112, 112), float32] */;
-      %6 = nn.max_pool2d(%5, pool_size=[3, 3], strides=[2, 2], padding=[1, 1, 1, 1]) /* ty=Tensor[(1, 64, 56, 56), float32] */;
-      %7 = nn.batch_norm(%6, %stage1_unit1_bn1_gamma, %stage1_unit1_bn1_beta, %stage1_unit1_bn1_moving_mean, %stage1_unit1_bn1_moving_var, epsilon=2e-05f) /* ty=(Tensor[(1, 64, 56, 56), float32], Tensor[(64), float32], Tensor[(64), float32]) */;
-      %8 = %7.0;
-      %9 = nn.relu(%8) /* ty=Tensor[(1, 64, 56, 56), float32] */;
-      %10 = nn.conv2d(%9, %stage1_unit1_conv1_weight, padding=[1, 1, 1, 1], channels=64, kernel_size=[3, 3]) /* ty=Tensor[(1, 64, 56, 56), float32] */;
-      %11 = nn.batch_norm(%10, %stage1_unit1_bn2_gamma, %stage1_unit1_bn2_beta, %stage1_unit1_bn2_moving_mean, %stage1_unit1_bn2_moving_var, epsilon=2e-05f) /* ty=(Tensor[(1, 64, 56, 56), float32], Tensor[(64), float32], Tensor[(64), float32]) */;
-      %12 = %11.0;
-      %13 = nn.relu(%12) /* ty=Tensor[(1, 64, 56, 56), float32] */;
-      %14 = nn.conv2d(%13, %stage1_unit1_conv2_weight, padding=[1, 1, 1, 1], channels=64, kernel_size=[3, 3]) /* ty=Tensor[(1, 64, 56, 56), float32] */;
-      %15 = nn.conv2d(%9, %stage1_unit1_sc_weight, padding=[0, 0, 0, 0], channels=64, kernel_size=[1, 1]) /* ty=Tensor[(1, 64, 56, 56), float32] */;
-      %16 = add(%14, %15) /* ty=Tensor[(1, 64, 56, 56), float32] */;
-      %17 = nn.batch_norm(%16, %stage1_unit2_bn1_gamma, %stage1_unit2_bn1_beta, %stage1_unit2_bn1_moving_mean, %stage1_unit2_bn1_moving_var, epsilon=2e-05f) /* ty=(Tensor[(1, 64, 56, 56), float32], Tensor[(64), float32], Tensor[(64), float32]) */;
-      %18 = %17.0;
-      %19 = nn.relu(%18) /* ty=Tensor[(1, 64, 56, 56), float32] */;
-      %20 = nn.conv2d(%19, %stage1_unit2_conv1_weight, padding=[1, 1, 1, 1], channels=64, kernel_size=[3, 3]) /* ty=Tensor[(1, 64, 56, 56), float32] */;
-      %21 = nn.batch_norm(%20, %stage1_unit2_bn2_gamma, %stage1_unit2_bn2_beta, %stage1_unit2_bn2_moving_mean, %stage1_unit2_bn2_moving_var, epsilon=2e-05f) /* ty=(Tensor[(1, 64, 56, 56), float32], Tensor[(64), float32], Tensor[(64), float32]) */;
-      %22 = %21.0;
-      %23 = nn.relu(%22) /* ty=Tensor[(1, 64, 56, 56), float32] */;
-      %24 = nn.conv2d(%23, %stage1_unit2_conv2_weight, padding=[1, 1, 1, 1], channels=64, kernel_size=[3, 3]) /* ty=Tensor[(1, 64, 56, 56), float32] */;
-      %25 = add(%24, %16) /* ty=Tensor[(1, 64, 56, 56), float32] */;
-      %26 = nn.batch_norm(%25, %stage2_unit1_bn1_gamma, %stage2_unit1_bn1_beta, %stage2_unit1_bn1_moving_mean, %stage2_unit1_bn1_moving_var, epsilon=2e-05f) /* ty=(Tensor[(1, 64, 56, 56), float32], Tensor[(64), float32], Tensor[(64), float32]) */;
-      %27 = %26.0;
-      %28 = nn.relu(%27) /* ty=Tensor[(1, 64, 56, 56), float32] */;
-      %29 = nn.conv2d(%28, %stage2_unit1_conv1_weight, strides=[2, 2], padding=[1, 1, 1, 1], channels=128, kernel_size=[3, 3]) /* ty=Tensor[(1, 128, 28, 28), float32] */;
-      %30 = nn.batch_norm(%29, %stage2_unit1_bn2_gamma, %stage2_unit1_bn2_beta, %stage2_unit1_bn2_moving_mean, %stage2_unit1_bn2_moving_var, epsilon=2e-05f) /* ty=(Tensor[(1, 128, 28, 28), float32], Tensor[(128), float32], Tensor[(128), float32]) */;
-      %31 = %30.0;
-      %32 = nn.relu(%31) /* ty=Tensor[(1, 128, 28, 28), float32] */;
-      %33 = nn.conv2d(%32, %stage2_unit1_conv2_weight, padding=[1, 1, 1, 1], channels=128, kernel_size=[3, 3]) /* ty=Tensor[(1, 128, 28, 28), float32] */;
-      %34 = nn.conv2d(%28, %stage2_unit1_sc_weight, strides=[2, 2], padding=[0, 0, 0, 0], channels=128, kernel_size=[1, 1]) /* ty=Tensor[(1, 128, 28, 28), float32] */;
-      %35 = add(%33, %34) /* ty=Tensor[(1, 128, 28, 28), float32] */;
-      %36 = nn.batch_norm(%35, %stage2_unit2_bn1_gamma, %stage2_unit2_bn1_beta, %stage2_unit2_bn1_moving_mean, %stage2_unit2_bn1_moving_var, epsilon=2e-05f) /* ty=(Tensor[(1, 128, 28, 28), float32], Tensor[(128), float32], Tensor[(128), float32]) */;
-      %37 = %36.0;
-      %38 = nn.relu(%37) /* ty=Tensor[(1, 128, 28, 28), float32] */;
-      %39 = nn.conv2d(%38, %stage2_unit2_conv1_weight, padding=[1, 1, 1, 1], channels=128, kernel_size=[3, 3]) /* ty=Tensor[(1, 128, 28, 28), float32] */;
-      %40 = nn.batch_norm(%39, %stage2_unit2_bn2_gamma, %stage2_unit2_bn2_beta, %stage2_unit2_bn2_moving_mean, %stage2_unit2_bn2_moving_var, epsilon=2e-05f) /* ty=(Tensor[(1, 128, 28, 28), float32], Tensor[(128), float32], Tensor[(128), float32]) */;
-      %41 = %40.0;
-      %42 = nn.relu(%41) /* ty=Tensor[(1, 128, 28, 28), float32] */;
-      %43 = nn.conv2d(%42, %stage2_unit2_conv2_weight, padding=[1, 1, 1, 1], channels=128, kernel_size=[3, 3]) /* ty=Tensor[(1, 128, 28, 28), float32] */;
-      %44 = add(%43, %35) /* ty=Tensor[(1, 128, 28, 28), float32] */;
-      %45 = nn.batch_norm(%44, %stage3_unit1_bn1_gamma, %stage3_unit1_bn1_beta, %stage3_unit1_bn1_moving_mean, %stage3_unit1_bn1_moving_var, epsilon=2e-05f) /* ty=(Tensor[(1, 128, 28, 28), float32], Tensor[(128), float32], Tensor[(128), float32]) */;
-      %46 = %45.0;
-      %47 = nn.relu(%46) /* ty=Tensor[(1, 128, 28, 28), float32] */;
-      %48 = nn.conv2d(%47, %stage3_unit1_conv1_weight, strides=[2, 2], padding=[1, 1, 1, 1], channels=256, kernel_size=[3, 3]) /* ty=Tensor[(1, 256, 14, 14), float32] */;
-      %49 = nn.batch_norm(%48, %stage3_unit1_bn2_gamma, %stage3_unit1_bn2_beta, %stage3_unit1_bn2_moving_mean, %stage3_unit1_bn2_moving_var, epsilon=2e-05f) /* ty=(Tensor[(1, 256, 14, 14), float32], Tensor[(256), float32], Tensor[(256), float32]) */;
-      %50 = %49.0;
-      %51 = nn.relu(%50) /* ty=Tensor[(1, 256, 14, 14), float32] */;
-      %52 = nn.conv2d(%51, %stage3_unit1_conv2_weight, padding=[1, 1, 1, 1], channels=256, kernel_size=[3, 3]) /* ty=Tensor[(1, 256, 14, 14), float32] */;
-      %53 = nn.conv2d(%47, %stage3_unit1_sc_weight, strides=[2, 2], padding=[0, 0, 0, 0], channels=256, kernel_size=[1, 1]) /* ty=Tensor[(1, 256, 14, 14), float32] */;
-      %54 = add(%52, %53) /* ty=Tensor[(1, 256, 14, 14), float32] */;
-      %55 = nn.batch_norm(%54, %stage3_unit2_bn1_gamma, %stage3_unit2_bn1_beta, %stage3_unit2_bn1_moving_mean, %stage3_unit2_bn1_moving_var, epsilon=2e-05f) /* ty=(Tensor[(1, 256, 14, 14), float32], Tensor[(256), float32], Tensor[(256), float32]) */;
-      %56 = %55.0;
-      %57 = nn.relu(%56) /* ty=Tensor[(1, 256, 14, 14), float32] */;
-      %58 = nn.conv2d(%57, %stage3_unit2_conv1_weight, padding=[1, 1, 1, 1], channels=256, kernel_size=[3, 3]) /* ty=Tensor[(1, 256, 14, 14), float32] */;
-      %59 = nn.batch_norm(%58, %stage3_unit2_bn2_gamma, %stage3_unit2_bn2_beta, %stage3_unit2_bn2_moving_mean, %stage3_unit2_bn2_moving_var, epsilon=2e-05f) /* ty=(Tensor[(1, 256, 14, 14), float32], Tensor[(256), float32], Tensor[(256), float32]) */;
-      %60 = %59.0;
-      %61 = nn.relu(%60) /* ty=Tensor[(1, 256, 14, 14), float32] */;
-      %62 = nn.conv2d(%61, %stage3_unit2_conv2_weight, padding=[1, 1, 1, 1], channels=256, kernel_size=[3, 3]) /* ty=Tensor[(1, 256, 14, 14), float32] */;
-      %63 = add(%62, %54) /* ty=Tensor[(1, 256, 14, 14), float32] */;
-      %64 = nn.batch_norm(%63, %stage4_unit1_bn1_gamma, %stage4_unit1_bn1_beta, %stage4_unit1_bn1_moving_mean, %stage4_unit1_bn1_moving_var, epsilon=2e-05f) /* ty=(Tensor[(1, 256, 14, 14), float32], Tensor[(256), float32], Tensor[(256), float32]) */;
-      %65 = %64.0;
-      %66 = nn.relu(%65) /* ty=Tensor[(1, 256, 14, 14), float32] */;
-      %67 = nn.conv2d(%66, %stage4_unit1_conv1_weight, strides=[2, 2], padding=[1, 1, 1, 1], channels=512, kernel_size=[3, 3]) /* ty=Tensor[(1, 512, 7, 7), float32] */;
-      %68 = nn.batch_norm(%67, %stage4_unit1_bn2_gamma, %stage4_unit1_bn2_beta, %stage4_unit1_bn2_moving_mean, %stage4_unit1_bn2_moving_var, epsilon=2e-05f) /* ty=(Tensor[(1, 512, 7, 7), float32], Tensor[(512), float32], Tensor[(512), float32]) */;
-      %69 = %68.0;
-      %70 = nn.relu(%69) /* ty=Tensor[(1, 512, 7, 7), float32] */;
-      %71 = nn.conv2d(%70, %stage4_unit1_conv2_weight, padding=[1, 1, 1, 1], channels=512, kernel_size=[3, 3]) /* ty=Tensor[(1, 512, 7, 7), float32] */;
-      %72 = nn.conv2d(%66, %stage4_unit1_sc_weight, strides=[2, 2], padding=[0, 0, 0, 0], channels=512, kernel_size=[1, 1]) /* ty=Tensor[(1, 512, 7, 7), float32] */;
-      %73 = add(%71, %72) /* ty=Tensor[(1, 512, 7, 7), float32] */;
-      %74 = nn.batch_norm(%73, %stage4_unit2_bn1_gamma, %stage4_unit2_bn1_beta, %stage4_unit2_bn1_moving_mean, %stage4_unit2_bn1_moving_var, epsilon=2e-05f) /* ty=(Tensor[(1, 512, 7, 7), float32], Tensor[(512), float32], Tensor[(512), float32]) */;
-      %75 = %74.0;
-      %76 = nn.relu(%75) /* ty=Tensor[(1, 512, 7, 7), float32] */;
-      %77 = nn.conv2d(%76, %stage4_unit2_conv1_weight, padding=[1, 1, 1, 1], channels=512, kernel_size=[3, 3]) /* ty=Tensor[(1, 512, 7, 7), float32] */;
-      %78 = nn.batch_norm(%77, %stage4_unit2_bn2_gamma, %stage4_unit2_bn2_beta, %stage4_unit2_bn2_moving_mean, %stage4_unit2_bn2_moving_var, epsilon=2e-05f) /* ty=(Tensor[(1, 512, 7, 7), float32], Tensor[(512), float32], Tensor[(512), float32]) */;
-      %79 = %78.0;
-      %80 = nn.relu(%79) /* ty=Tensor[(1, 512, 7, 7), float32] */;
-      %81 = nn.conv2d(%80, %stage4_unit2_conv2_weight, padding=[1, 1, 1, 1], channels=512, kernel_size=[3, 3]) /* ty=Tensor[(1, 512, 7, 7), float32] */;
-      %82 = add(%81, %73) /* ty=Tensor[(1, 512, 7, 7), float32] */;
-      %83 = nn.batch_norm(%82, %bn1_gamma, %bn1_beta, %bn1_moving_mean, %bn1_moving_var, epsilon=2e-05f) /* ty=(Tensor[(1, 512, 7, 7), float32], Tensor[(512), float32], Tensor[(512), float32]) */;
-      %84 = %83.0;
-      %85 = nn.relu(%84) /* ty=Tensor[(1, 512, 7, 7), float32] */;
-      %86 = nn.global_avg_pool2d(%85) /* ty=Tensor[(1, 512, 1, 1), float32] */;
-      %87 = nn.batch_flatten(%86) /* ty=Tensor[(1, 512), float32] */;
-      %88 = nn.dense(%87, %fc1_weight, units=1000) /* ty=Tensor[(1, 1000), float32] */;
-      %89 = nn.bias_add(%88, %fc1_bias, axis=-1) /* ty=Tensor[(1, 1000), float32] */;
-      nn.softmax(%89) /* ty=Tensor[(1, 1000), float32] */
-    }
-
-
-
-
-Compilation
------------
-Next step is to compile the model using the Relay/TVM pipeline.
-Users can specify the optimization level of the compilation.
-Currently this value can be 0 to 3. The optimization passes include
-operator fusion, pre-computation, layout transformation and so on.
-
-:py:func:`relay.build` returns three components: the execution graph in
-json format, the TVM module library of compiled functions specifically
-for this graph on the target hardware, and the parameter blobs of
-the model. During the compilation, Relay does the graph-level
-optimization while TVM does the tensor-level optimization, resulting
-in an optimized runtime module for model serving.
-
-We'll first compile for Nvidia GPU. Behind the scene, :py:func:`relay.build`
-first does a number of graph-level optimizations, e.g. pruning, fusing, etc.,
-then registers the operators (i.e. the nodes of the optimized graphs) to
-TVM implementations to generate a `tvm.module`.
-To generate the module library, TVM will first transfer the high level IR
-into the lower intrinsic IR of the specified target backend, which is CUDA
-in this example. Then the machine code will be generated as the module library.
-
-
-.. code-block:: default
-
-
-    opt_level = 3
-    target = tvm.target.cuda()
-    with tvm.transform.PassContext(opt_level=opt_level):
-        graph, lib, params = relay.build(mod, target, params=params)
-
-
-
-
-
-.. rst-class:: sphx-glr-script-out
-
- Out:
-
- .. code-block:: none
-
-
    ...1%, 0.01 MB, 11 KB/s, 0 seconds passed
    ...3%, 0.02 MB, 23 KB/s, 0 seconds passed
    ...5%, 0.02 MB, 35 KB/s, 0 seconds passed
    ...7%, 0.03 MB, 46 KB/s, 0 seconds passed
    ...9%, 0.04 MB, 57 KB/s, 0 seconds passed
    ...11%, 0.05 MB, 69 KB/s, 0 seconds passed
    ...13%, 0.05 MB, 81 KB/s, 0 seconds passed
    ...15%, 0.06 MB, 92 KB/s, 0 seconds passed
    ...17%, 0.07 MB, 103 KB/s, 0 seconds passed
    ...19%, 0.08 MB, 115 KB/s, 0 seconds passed
    ...21%, 0.09 MB, 126 KB/s, 0 seconds passed
    ...23%, 0.09 MB, 137 KB/s, 0 seconds passed
    ...25%, 0.10 MB, 148 KB/s, 0 seconds passed
    ...27%, 0.11 MB, 160 KB/s, 0 seconds passed
    ...29%, 0.12 MB, 171 KB/s, 0 seconds passed
    ...31%, 0.12 MB, 182 KB/s, 0 seconds passed
    ...33%, 0.13 MB, 194 KB/s, 0 seconds passed
    ...35%, 0.14 MB, 205 KB/s, 0 seconds passed
    ...37%, 0.15 MB, 216 KB/s, 0 seconds passed
    ...39%, 0.16 MB, 228 KB/s, 0 seconds passed
    ...41%, 0.16 MB, 238 KB/s, 0 seconds passed
 
    ...43%, 0.17 MB, 249 KB/s, 0 seconds passed
    ...45%, 0.18 MB, 261 KB/s, 0 seconds passed
    ...47%, 0.19 MB, 272 KB/s, 0 seconds passed
    ...49%, 0.20 MB, 283 KB/s, 0 seconds passed
    ...51%, 0.20 MB, 294 KB/s, 0 seconds passed
    ...53%, 0.21 MB, 305 KB/s, 0 seconds passed
    ...55%, 0.22 MB, 317 KB/s, 0 seconds passed
    ...57%, 0.23 MB, 328 KB/s, 0 seconds passed
    ...59%, 0.23 MB, 339 KB/s, 0 seconds passed
    ...61%, 0.24 MB, 350 KB/s, 0 seconds passed
    ...63%, 0.25 MB, 361 KB/s, 0 seconds passed
    ...65%, 0.26 MB, 373 KB/s, 0 seconds passed
    ...67%, 0.27 MB, 384 KB/s, 0 seconds passed
    ...69%, 0.27 MB, 395 KB/s, 0 seconds passed
    ...71%, 0.28 MB, 406 KB/s, 0 seconds passed
    ...73%, 0.29 MB, 417 KB/s, 0 seconds passed
    ...75%, 0.30 MB, 429 KB/s, 0 seconds passed
    ...77%, 0.30 MB, 440 KB/s, 0 seconds passed
    ...79%, 0.31 MB, 451 KB/s, 0 seconds passed
    ...81%, 0.32 MB, 462 KB/s, 0 seconds passed
    ...83%, 0.33 MB, 471 KB/s, 0 secon
 ds passed
    ...85%, 0.34 MB, 482 KB/s, 0 seconds passed
    ...87%, 0.34 MB, 493 KB/s, 0 seconds passed
    ...89%, 0.35 MB, 505 KB/s, 0 seconds passed
    ...91%, 0.36 MB, 515 KB/s, 0 seconds passed
    ...93%, 0.37 MB, 526 KB/s, 0 seconds passed
    ...95%, 0.38 MB, 537 KB/s, 0 seconds passed
    ...97%, 0.38 MB, 549 KB/s, 0 seconds passed
    ...99%, 0.39 MB, 560 KB/s, 0 seconds passed
    ...100%, 0.40 MB, 571 KB/s, 0 seconds passed
-    Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -model=unknown -thread_warp_size=32, workload=('dense_small_batch.cuda', ('TENSOR', (1, 512), 'float32'), ('TENSOR', (1000, 512), 'float32'), None, 'float32'). A fallback configuration is used, which may bring great performance regression.
-
-
-
-Run the generate library
-------------------------
-Now we can create graph runtime and run the module on Nvidia GPU.
-
-
-.. code-block:: default
-
-
-    # create random input
-    ctx = tvm.gpu()
-    data = np.random.uniform(-1, 1, size=data_shape).astype("float32")
-    # create module
-    module = graph_runtime.create(graph, lib, ctx)
-    # set input and parameters
-    module.set_input("data", data)
-    module.set_input(**params)
-    # run
-    module.run()
-    # get output
-    out = module.get_output(0, tvm.nd.empty(out_shape)).asnumpy()
-
-    # Print first 10 elements of output
-    print(out.flatten()[0:10])
-
-
-
-
-
-.. rst-class:: sphx-glr-script-out
-
- Out:
-
- .. code-block:: none
-
-    [0.00089283 0.00103331 0.0009094  0.00102275 0.00108751 0.00106737
-     0.00106262 0.00095838 0.00110792 0.00113151]
-
-
-
-Save and Load Compiled Module
------------------------------
-We can also save the graph, lib and parameters into files and load them
-back in deploy environment.
-
-
-.. code-block:: default
-
-
-    # save the graph, lib and params into separate files
-    from tvm.contrib import util
-
-    temp = util.tempdir()
-    path_lib = temp.relpath("deploy_lib.tar")
-    lib.export_library(path_lib)
-    with open(temp.relpath("deploy_graph.json"), "w") as fo:
-        fo.write(graph)
-    with open(temp.relpath("deploy_param.params"), "wb") as fo:
-        fo.write(relay.save_param_dict(params))
-    print(temp.listdir())
-
-
-
-
-
-.. rst-class:: sphx-glr-script-out
-
- Out:
-
- .. code-block:: none
-
-    ['deploy_lib.tar', 'deploy_graph.json', 'deploy_param.params']
-
-
-
-
-.. code-block:: default
-
-
-    # load the module back.
-    loaded_json = open(temp.relpath("deploy_graph.json")).read()
-    loaded_lib = tvm.runtime.load_module(path_lib)
-    loaded_params = bytearray(open(temp.relpath("deploy_param.params"), "rb").read())
-    input_data = tvm.nd.array(np.random.uniform(size=data_shape).astype("float32"))
-
-    module = graph_runtime.create(loaded_json, loaded_lib, ctx)
-    module.load_params(loaded_params)
-    module.run(data=input_data)
-    out_deploy = module.get_output(0).asnumpy()
-
-    # Print first 10 elements of output
-    print(out_deploy.flatten()[0:10])
-
-    # check whether the output from deployed module is consistent with original one
-    tvm.testing.assert_allclose(out_deploy, out, atol=1e-3)
-
-
-
-
-.. rst-class:: sphx-glr-script-out
-
- Out:
-
- .. code-block:: none
-
-    [0.00090713 0.00105705 0.00094459 0.00103146 0.00110017 0.00105846
-     0.00104143 0.00095862 0.0010827  0.00111618]
-
-
-
-
-.. _sphx_glr_download_tutorials_relay_quick_start.py:
-
-
-.. only :: html
-
- .. container:: sphx-glr-footer
-    :class: sphx-glr-footer-example
-
-
-
-  .. container:: sphx-glr-download
-
-     :download:`Download Python source code: relay_quick_start.py <relay_quick_start.py>`
-
-
-
-  .. container:: sphx-glr-download
-
-     :download:`Download Jupyter notebook: relay_quick_start.ipynb <relay_quick_start.ipynb>`
-
-
-.. only:: html
-
- .. rst-class:: sphx-glr-signature
-
-    `Gallery generated by Sphinx-Gallery <https://sphinx-gallery.github.io>`_
diff --git a/docs/_sources/tutorials/sg_execution_times.rst.txt b/docs/_sources/tutorials/sg_execution_times.rst.txt
deleted file mode 100644
index 2ed5563..0000000
--- a/docs/_sources/tutorials/sg_execution_times.rst.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-
-:orphan:
-
-.. _sphx_glr_tutorials_sg_execution_times:
-
-Computation times
-=================
-**00:12.404** total execution time for **tutorials** files:
-
-- **00:11.916**: :ref:`sphx_glr_tutorials_relay_quick_start.py` (``relay_quick_start.py``)
-- **00:00.355**: :ref:`sphx_glr_tutorials_tensor_expr_get_started.py` (``tensor_expr_get_started.py``)
-- **00:00.133**: :ref:`sphx_glr_tutorials_cross_compilation_and_rpc.py` (``cross_compilation_and_rpc.py``)
diff --git a/docs/_sources/tutorials/tensor_expr_get_started.rst.txt b/docs/_sources/tutorials/tensor_expr_get_started.rst.txt
deleted file mode 100644
index fab762a..0000000
--- a/docs/_sources/tutorials/tensor_expr_get_started.rst.txt
+++ /dev/null
@@ -1,476 +0,0 @@
-.. note::
-    :class: sphx-glr-download-link-note
-
-    Click :ref:`here <sphx_glr_download_tutorials_tensor_expr_get_started.py>` to download the full example code
-.. rst-class:: sphx-glr-example-title
-
-.. _sphx_glr_tutorials_tensor_expr_get_started.py:
-
-
-.. _tutorial-tensor-expr-get-started:
-
-Get Started with Tensor Expression
-==================================
-**Author**: `Tianqi Chen <https://tqchen.github.io>`_
-
-This is an introductory tutorial to the Tensor expression language in TVM.
-TVM uses a domain specific tensor expression for efficient kernel construction.
-
-In this tutorial, we will demonstrate the basic workflow to use
-the tensor expression language.
-
-
-.. code-block:: default
-
-    from __future__ import absolute_import, print_function
-
-    import tvm
-    from tvm import te
-    import numpy as np
-
-    # Global declarations of environment.
-
-    tgt_host="llvm"
-    # Change it to respective GPU if gpu is enabled Ex: cuda, opencl, rocm
-    tgt="cuda"
-
-
-
-
-
-
-
-Vector Add Example
-------------------
-In this tutorial, we will use a vector addition example to demonstrate
-the workflow.
-
-
-Describe the Computation
-------------------------
-As a first step, we need to describe our computation.
-TVM adopts tensor semantics, with each intermediate result
-represented as a multi-dimensional array. The user needs to describe
-the computation rule that generates the tensors.
-
-We first define a symbolic variable n to represent the shape.
-We then define two placeholder Tensors, A and B, with given shape (n,)
-
-We then describe the result tensor C, with a compute operation.  The
-compute function takes the shape of the tensor, as well as a lambda
-function that describes the computation rule for each position of
-the tensor.
-
-No computation happens during this phase, as we are only declaring how
-the computation should be done.
-
-
-
-.. code-block:: default
-
-    n = te.var("n")
-    A = te.placeholder((n,), name='A')
-    B = te.placeholder((n,), name='B')
-    C = te.compute(A.shape, lambda i: A[i] + B[i], name="C")
-    print(type(C))
-
-
-
-
-
-.. rst-class:: sphx-glr-script-out
-
- Out:
-
- .. code-block:: none
-
-    <class 'tvm.te.tensor.Tensor'>
-
-
-
-Schedule the Computation
-------------------------
-While the above lines describe the computation rule, we can compute
-C in many ways since the axis of C can be computed in a data
-parallel manner.  TVM asks the user to provide a description of the
-computation called a schedule.
-
-A schedule is a set of transformation of computation that transforms
-the loop of computations in the program.
-
-After we construct the schedule, by default the schedule computes
-C in a serial manner in a row-major order.
-
-.. code-block:: c
-
-  for (int i = 0; i < n; ++i) {
-    C[i] = A[i] + B[i];
-  }
-
-
-
-.. code-block:: default
-
-    s = te.create_schedule(C.op)
-
-
-
-
-
-
-
-We used the split construct to split the first axis of C,
-this will split the original iteration axis into product of
-two iterations. This is equivalent to the following code.
-
-.. code-block:: c
-
-  for (int bx = 0; bx < ceil(n / 64); ++bx) {
-    for (int tx = 0; tx < 64; ++tx) {
-      int i = bx * 64 + tx;
-      if (i < n) {
-        C[i] = A[i] + B[i];
-      }
-    }
-  }
-
-
-
-.. code-block:: default
-
-    bx, tx = s[C].split(C.op.axis[0], factor=64)
-
-
-
-
-
-
-
-Finally we bind the iteration axis bx and tx to threads in the GPU
-compute grid. These are GPU specific constructs that allow us
-to generate code that runs on GPU.
-
-
-
-.. code-block:: default
-
-    if tgt == "cuda" or tgt == "rocm" or tgt.startswith('opencl'):
-      s[C].bind(bx, te.thread_axis("blockIdx.x"))
-      s[C].bind(tx, te.thread_axis("threadIdx.x"))
-
-
-
-
-
-
-
-Compilation
------------
-After we have finished specifying the schedule, we can compile it
-into a TVM function. By default TVM compiles into a type-erased
-function that can be directly called from the python side.
-
-In the following line, we use tvm.build to create a function.
-The build function takes the schedule, the desired signature of the
-function (including the inputs and outputs) as well as target language
-we want to compile to.
-
-The result of compilation fadd is a GPU device function (if GPU is
-involved) as well as a host wrapper that calls into the GPU
-function.  fadd is the generated host wrapper function, it contains
-a reference to the generated device function internally.
-
-
-
-.. code-block:: default
-
-    fadd = tvm.build(s, [A, B, C], tgt, target_host=tgt_host, name="myadd")
-
-
-
-
-
-
-
-Run the Function
-----------------
-The compiled TVM function is exposes a concise C API
-that can be invoked from any language.
-
-We provide a minimal array API in python to aid quick testing and prototyping.
-The array API is based on the `DLPack <https://github.com/dmlc/dlpack>`_ standard.
-
-- We first create a GPU context.
-- Then tvm.nd.array copies the data to the GPU.
-- fadd runs the actual computation.
-- asnumpy() copies the GPU array back to the CPU and we can use this to verify correctness
-
-
-
-.. code-block:: default
-
-    ctx = tvm.context(tgt, 0)
-
-    n = 1024
-    a = tvm.nd.array(np.random.uniform(size=n).astype(A.dtype), ctx)
-    b = tvm.nd.array(np.random.uniform(size=n).astype(B.dtype), ctx)
-    c = tvm.nd.array(np.zeros(n, dtype=C.dtype), ctx)
-    fadd(a, b, c)
-    tvm.testing.assert_allclose(c.asnumpy(), a.asnumpy() + b.asnumpy())
-
-
-
-
-
-
-
-Inspect the Generated Code
---------------------------
-You can inspect the generated code in TVM. The result of tvm.build
-is a TVM Module. fadd is the host module that contains the host wrapper,
-it also contains a device module for the CUDA (GPU) function.
-
-The following code fetches the device module and prints the content code.
-
-
-
-.. code-block:: default
-
-    if tgt == "cuda" or tgt == "rocm" or tgt.startswith('opencl'):
-        dev_module = fadd.imported_modules[0]
-        print("-----GPU code-----")
-        print(dev_module.get_source())
-    else:
-        print(fadd.get_source())
-
-
-
-
-
-.. rst-class:: sphx-glr-script-out
-
- Out:
-
- .. code-block:: none
-
-    -----GPU code-----
-    extern "C" __global__ void myadd_kernel0(void* __restrict__ C, void* __restrict__ A, void* __restrict__ B, int n, int stride, int stride1, int stride2) {
-      if (((int)blockIdx.x) < (n >> 6)) {
-        ((float*)C)[((((((int)blockIdx.x) * 64) + ((int)threadIdx.x)) * stride2))] = (((float*)A)[((((((int)blockIdx.x) * 64) + ((int)threadIdx.x)) * stride))] + ((float*)B)[((((((int)blockIdx.x) * 64) + ((int)threadIdx.x)) * stride1))]);
-      } else {
-        if (((((int)blockIdx.x) * 64) + ((int)threadIdx.x)) < n) {
-          ((float*)C)[((((((int)blockIdx.x) * 64) + ((int)threadIdx.x)) * stride2))] = (((float*)A)[((((((int)blockIdx.x) * 64) + ((int)threadIdx.x)) * stride))] + ((float*)B)[((((((int)blockIdx.x) * 64) + ((int)threadIdx.x)) * stride1))]);
-        }
-      }
-    }
-
-
-
-
-
-.. note:: Code Specialization
-
-  As you may have noticed, the declarations of A, B and C all
-  take the same shape argument, n. TVM will take advantage of this
-  to pass only a single shape argument to the kernel, as you will find in
-  the printed device code. This is one form of specialization.
-
-  On the host side, TVM will automatically generate check code
-  that checks the constraints in the parameters. So if you pass
-  arrays with different shapes into fadd, an error will be raised.
-
-  We can do more specializations. For example, we can write
-  :code:`n = tvm.runtime.convert(1024)` instead of :code:`n = te.var("n")`,
-  in the computation declaration. The generated function will
-  only take vectors with length 1024.
-
-
-Save Compiled Module
---------------------
-Besides runtime compilation, we can save the compiled modules into
-a file and load them back later. This is called ahead of time compilation.
-
-The following code first performs the following steps:
-
-- It saves the compiled host module into an object file.
-- Then it saves the device module into a ptx file.
-- cc.create_shared calls a compiler (gcc) to create a shared library
-
-
-
-.. code-block:: default
-
-    from tvm.contrib import cc
-    from tvm.contrib import util
-
-    temp = util.tempdir()
-    fadd.save(temp.relpath("myadd.o"))
-    if tgt == "cuda":
-        fadd.imported_modules[0].save(temp.relpath("myadd.ptx"))
-    if tgt == "rocm":
-        fadd.imported_modules[0].save(temp.relpath("myadd.hsaco"))
-    if tgt.startswith('opencl'):
-        fadd.imported_modules[0].save(temp.relpath("myadd.cl"))
-    cc.create_shared(temp.relpath("myadd.so"), [temp.relpath("myadd.o")])
-    print(temp.listdir())
-
-
-
-
-
-.. rst-class:: sphx-glr-script-out
-
- Out:
-
- .. code-block:: none
-
-    ['myadd.tvm_meta.json', 'myadd.ptx', 'myadd.so', 'myadd.o']
-
-
-
-.. note:: Module Storage Format
-
-  The CPU (host) module is directly saved as a shared library (.so).
-  There can be multiple customized formats of the device code.
-  In our example, the device code is stored in ptx, as well as a meta
-  data json file. They can be loaded and linked separately via import.
-
-
-Load Compiled Module
---------------------
-We can load the compiled module from the file system and run the code.
-The following code loads the host and device module separately and
-re-links them together. We can verify that the newly loaded function works.
-
-
-
-.. code-block:: default
-
-    fadd1 = tvm.runtime.load_module(temp.relpath("myadd.so"))
-    if tgt == "cuda":
-        fadd1_dev = tvm.runtime.load_module(temp.relpath("myadd.ptx"))
-        fadd1.import_module(fadd1_dev)
-
-    if tgt == "rocm":
-        fadd1_dev = tvm.runtime.load_module(temp.relpath("myadd.hsaco"))
-        fadd1.import_module(fadd1_dev)
-
-    if tgt.startswith('opencl'):
-        fadd1_dev = tvm.runtime.load_module(temp.relpath("myadd.cl"))
-        fadd1.import_module(fadd1_dev)
-
-    fadd1(a, b, c)
-    tvm.testing.assert_allclose(c.asnumpy(), a.asnumpy() + b.asnumpy())
-
-
-
-
-
-
-
-Pack Everything into One Library
---------------------------------
-In the above example, we store the device and host code separately.
-TVM also supports export everything as one shared library.
-Under the hood, we pack the device modules into binary blobs and link
-them together with the host code.
-Currently we support packing of Metal, OpenCL and CUDA modules.
-
-
-
-.. code-block:: default
-
-    fadd.export_library(temp.relpath("myadd_pack.so"))
-    fadd2 = tvm.runtime.load_module(temp.relpath("myadd_pack.so"))
-    fadd2(a, b, c)
-    tvm.testing.assert_allclose(c.asnumpy(), a.asnumpy() + b.asnumpy())
-
-
-
-
-
-
-
-.. note:: Runtime API and Thread-Safety
-
-  The compiled modules of TVM do not depend on the TVM compiler.
-  Instead, they only depend on a minimum runtime library.
-  The TVM runtime library wraps the device drivers and provides
-  thread-safe and device agnostic calls into the compiled functions.
-
-  This means that you can call the compiled TVM functions from any thread,
-  on any GPUs.
-
-
-Generate OpenCL Code
---------------------
-TVM provides code generation features into multiple backends,
-we can also generate OpenCL code or LLVM code that runs on CPU backends.
-
-The following code blocks generate OpenCL code, creates array on an OpenCL
-device, and verifies the correctness of the code.
-
-
-
-.. code-block:: default
-
-    if tgt.startswith('opencl'):
-        fadd_cl = tvm.build(s, [A, B, C], tgt, name="myadd")
-        print("------opencl code------")
-        print(fadd_cl.imported_modules[0].get_source())
-        ctx = tvm.cl(0)
-        n = 1024
-        a = tvm.nd.array(np.random.uniform(size=n).astype(A.dtype), ctx)
-        b = tvm.nd.array(np.random.uniform(size=n).astype(B.dtype), ctx)
-        c = tvm.nd.array(np.zeros(n, dtype=C.dtype), ctx)
-        fadd_cl(a, b, c)
-        tvm.testing.assert_allclose(c.asnumpy(), a.asnumpy() + b.asnumpy())
-
-
-
-
-
-
-
-Summary
--------
-This tutorial provides a walk through of TVM workflow using
-a vector add example. The general workflow is
-
-- Describe your computation via a series of operations.
-- Describe how we want to compute use schedule primitives.
-- Compile to the target function we want.
-- Optionally, save the function to be loaded later.
-
-You are more than welcome to checkout other examples and
-tutorials to learn more about the supported operations, scheduling primitives
-and other features in TVM.
-
-
-
-.. _sphx_glr_download_tutorials_tensor_expr_get_started.py:
-
-
-.. only :: html
-
- .. container:: sphx-glr-footer
-    :class: sphx-glr-footer-example
-
-
-
-  .. container:: sphx-glr-download
-
-     :download:`Download Python source code: tensor_expr_get_started.py <tensor_expr_get_started.py>`
-
-
-
-  .. container:: sphx-glr-download
-
-     :download:`Download Jupyter notebook: tensor_expr_get_started.ipynb <tensor_expr_get_started.ipynb>`
-
-
-.. only:: html
-
- .. rst-class:: sphx-glr-signature
-
-    `Gallery generated by Sphinx-Gallery <https://sphinx-gallery.github.io>`_
diff --git a/docs/_sources/tutorials/topi/intro_topi.rst.txt b/docs/_sources/tutorials/topi/intro_topi.rst.txt
index 48507d3..abb8c23 100644
--- a/docs/_sources/tutorials/topi/intro_topi.rst.txt
+++ b/docs/_sources/tutorials/topi/intro_topi.rst.txt
@@ -230,7 +230,7 @@ As you can see, scheduled stages of computation have been accumulated and we can
 
  .. code-block:: none
 
-    [stage(a, 0x16e2ba9b0), stage(b, 0x158cc2f00), stage(T_add, 0xf42565e0), stage(T_multiply, 0x17c2271d0), stage(T_elemwise_sum, 0x158cc20c0), stage(T_divide, 0x180e2cd30), stage(T_divide_red.rf, 0x158c7fcb0), stage(T_divide_red, 0x17dc333e0)]
+    [stage(a, 0xdfafe8b0), stage(b, 0x15b403ba0), stage(T_add, 0x17fd5a7b0), stage(T_multiply, 0x15b373ed0), stage(T_elemwise_sum, 0x16d4a5060), stage(T_divide, 0x1640dc0e0), stage(T_divide_red.rf, 0x1585bf140), stage(T_divide_red, 0x17c9c0740)]
 
 
 
diff --git a/docs/_sources/tutorials/topi/sg_execution_times.rst.txt b/docs/_sources/tutorials/topi/sg_execution_times.rst.txt
index 2f035db..560b670 100644
--- a/docs/_sources/tutorials/topi/sg_execution_times.rst.txt
+++ b/docs/_sources/tutorials/topi/sg_execution_times.rst.txt
@@ -5,6 +5,6 @@
 
 Computation times
 =================
-**00:00.602** total execution time for **tutorials_topi** files:
+**00:00.699** total execution time for **tutorials_topi** files:
 
-- **00:00.602**: :ref:`sphx_glr_tutorials_topi_intro_topi.py` (``intro_topi.py``)
+- **00:00.699**: :ref:`sphx_glr_tutorials_topi_intro_topi.py` (``intro_topi.py``)
diff --git a/docs/_sources/vta/tutorials/autotvm/sg_execution_times.rst.txt b/docs/_sources/vta/tutorials/autotvm/sg_execution_times.rst.txt
index a0f4a3a..244bcc4 100644
--- a/docs/_sources/vta/tutorials/autotvm/sg_execution_times.rst.txt
+++ b/docs/_sources/vta/tutorials/autotvm/sg_execution_times.rst.txt
@@ -5,6 +5,6 @@
 
 Computation times
 =================
-**00:04.726** total execution time for **vta_tutorials_autotvm** files:
+**00:03.957** total execution time for **vta_tutorials_autotvm** files:
 
-- **00:04.726**: :ref:`sphx_glr_vta_tutorials_autotvm_tune_relay_vta.py` (``tune_relay_vta.py``)
+- **00:03.957**: :ref:`sphx_glr_vta_tutorials_autotvm_tune_relay_vta.py` (``tune_relay_vta.py``)
diff --git a/docs/_sources/vta/tutorials/autotvm/tune_relay_vta.rst.txt b/docs/_sources/vta/tutorials/autotvm/tune_relay_vta.rst.txt
index f41d38c..8911917 100644
--- a/docs/_sources/vta/tutorials/autotvm/tune_relay_vta.rst.txt
+++ b/docs/_sources/vta/tutorials/autotvm/tune_relay_vta.rst.txt
@@ -481,7 +481,7 @@ Finally, we launch tuning jobs and evaluate the end-to-end performance.
  .. code-block:: none
 
     Extract tasks...
-
    ...1%, 0.01 MB, 215 KB/s, 0 seconds passed
    ...2%, 0.02 MB, 362 KB/s, 0 seconds passed
    ...3%, 0.02 MB, 541 KB/s, 0 seconds passed
    ...4%, 0.03 MB, 705 KB/s, 0 seconds passed
    ...5%, 0.04 MB, 775 KB/s, 0 seconds passed
    ...6%, 0.05 MB, 921 KB/s, 0 seconds passed
    ...7%, 0.05 MB, 1061 KB/s, 0 seconds passed
    ...8%, 0.06 MB, 1192 KB/s, 0 seconds passed
    ...9%, 0.07 MB, 1320 KB/s, 0 seconds passed
    ...10%, 0.08 MB, 1454 KB/s, 0 seconds passed
    ...11%, 0.09 MB, 1493 KB/s, 0 seconds passed
    ...13%, 0.09 MB, 1614 KB/s, 0 seconds passed
    ...14%, 0.10 MB, 1741 KB/s, 0 seconds passed
    ...15%, 0.11 MB, 1872 KB/s, 0 seconds passed
    ...16%, 0.12 MB, 1988 KB/s, 0 seconds passed
    ...17%, 0.12 MB, 2117 KB/s, 0 seconds passed
    ...18%, 0.13 MB, 2219 KB/s, 0 seconds passed
    ...19%, 0.14 MB, 2345 KB/s, 0 seconds passed
    ...20%, 0.15 MB, 2434 KB/s, 0 seconds passed
    ...21%, 0.16 MB, 2558 KB/s, 0 seconds passed
    ...22%, 0.16 MB, 2682 KB/s,
  0 seconds passed
    ...23%, 0.17 MB, 2783 KB/s, 0 seconds passed
    ...25%, 0.18 MB, 2775 KB/s, 0 seconds passed
    ...26%, 0.19 MB, 2891 KB/s, 0 seconds passed
    ...27%, 0.20 MB, 2990 KB/s, 0 seconds passed
    ...28%, 0.20 MB, 3105 KB/s, 0 seconds passed
    ...29%, 0.21 MB, 3220 KB/s, 0 seconds passed
    ...30%, 0.22 MB, 3315 KB/s, 0 seconds passed
    ...31%, 0.23 MB, 3428 KB/s, 0 seconds passed
    ...32%, 0.23 MB, 3524 KB/s, 0 seconds passed
    ...33%, 0.24 MB, 3636 KB/s, 0 seconds passed
    ...34%, 0.25 MB, 3726 KB/s, 0 seconds passed
    ...35%, 0.26 MB, 3835 KB/s, 0 seconds passed
    ...36%, 0.27 MB, 3946 KB/s, 0 seconds passed
    ...38%, 0.27 MB, 4056 KB/s, 0 seconds passed
    ...39%, 0.28 MB, 4166 KB/s, 0 seconds passed
    ...40%, 0.29 MB, 4256 KB/s, 0 seconds passed
    ...41%, 0.30 MB, 4347 KB/s, 0 seconds passed
    ...42%, 0.30 MB, 4455 KB/s, 0 seconds passed
    ...43%, 0.31 MB, 4563 KB/s, 0 seconds passed
    ...44%, 0.32 MB, 4671 KB/s, 0 seconds passed
 
    ...45%, 0.33 MB, 4778 KB/s, 0 seconds passed
    ...46%, 0.34 MB, 4885 KB/s, 0 seconds passed
    ...47%, 0.34 MB, 4977 KB/s, 0 seconds passed
    ...48%, 0.35 MB, 5082 KB/s, 0 seconds passed
    ...50%, 0.36 MB, 4992 KB/s, 0 seconds passed
    ...51%, 0.37 MB, 5093 KB/s, 0 seconds passed
    ...52%, 0.38 MB, 5168 KB/s, 0 seconds passed
    ...53%, 0.38 MB, 5267 KB/s, 0 seconds passed
    ...54%, 0.39 MB, 5368 KB/s, 0 seconds passed
    ...55%, 0.40 MB, 5468 KB/s, 0 seconds passed
    ...56%, 0.41 MB, 5541 KB/s, 0 seconds passed
    ...57%, 0.41 MB, 5639 KB/s, 0 seconds passed
    ...58%, 0.42 MB, 5672 KB/s, 0 seconds passed
    ...59%, 0.43 MB, 5769 KB/s, 0 seconds passed
    ...60%, 0.44 MB, 5867 KB/s, 0 seconds passed
    ...62%, 0.45 MB, 5947 KB/s, 0 seconds passed
    ...63%, 0.45 MB, 6043 KB/s, 0 seconds passed
    ...64%, 0.46 MB, 6140 KB/s, 0 seconds passed
    ...65%, 0.47 MB, 6236 KB/s, 0 seconds passed
    ...66%, 0.48 MB, 6286 KB/s, 0 seconds passed
    ...67%, 0.48
  MB, 6360 KB/s, 0 seconds passed
    ...68%, 0.49 MB, 6454 KB/s, 0 seconds passed
    ...69%, 0.50 MB, 6548 KB/s, 0 seconds passed
    ...70%, 0.51 MB, 6586 KB/s, 0 seconds passed
    ...71%, 0.52 MB, 6678 KB/s, 0 seconds passed
    ...72%, 0.52 MB, 6771 KB/s, 0 seconds passed
    ...73%, 0.53 MB, 6864 KB/s, 0 seconds passed
    ...75%, 0.54 MB, 6808 KB/s, 0 seconds passed
    ...76%, 0.55 MB, 6896 KB/s, 0 seconds passed
    ...77%, 0.55 MB, 6950 KB/s, 0 seconds passed
    ...78%, 0.56 MB, 7037 KB/s, 0 seconds passed
    ...79%, 0.57 MB, 7127 KB/s, 0 seconds passed
    ...80%, 0.58 MB, 7215 KB/s, 0 seconds passed
    ...81%, 0.59 MB, 7277 KB/s, 0 seconds passed
    ...82%, 0.59 MB, 7365 KB/s, 0 seconds passed
    ...83%, 0.60 MB, 7371 KB/s, 0 seconds passed
    ...84%, 0.61 MB, 7457 KB/s, 0 seconds passed
    ...85%, 0.62 MB, 7544 KB/s, 0 seconds passed
    ...87%, 0.62 MB, 7630 KB/s, 0 seconds passed
    ...88%, 0.63 MB, 7709 KB/s, 0 seconds passed
    ...89%, 0.64 MB, 7795 KB/s, 0
  seconds passed
    ...90%, 0.65 MB, 7856 KB/s, 0 seconds passed
    ...91%, 0.66 MB, 7940 KB/s, 0 seconds passed
    ...92%, 0.66 MB, 7988 KB/s, 0 seconds passed
    ...93%, 0.67 MB, 8064 KB/s, 0 seconds passed
    ...94%, 0.68 MB, 8119 KB/s, 0 seconds passed
    ...95%, 0.69 MB, 8202 KB/s, 0 seconds passed
    ...96%, 0.70 MB, 8261 KB/s, 0 seconds passed
    ...97%, 0.70 MB, 8344 KB/s, 0 seconds passed
    ...99%, 0.71 MB, 8394 KB/s, 0 seconds passed
    ...100%, 0.72 MB, 8463 KB/s, 0 seconds passed
+
    ...1%, 0.01 MB, 47 KB/s, 0 seconds passed
    ...2%, 0.02 MB, 94 KB/s, 0 seconds passed
    ...3%, 0.02 MB, 141 KB/s, 0 seconds passed
    ...4%, 0.03 MB, 188 KB/s, 0 seconds passed
    ...5%, 0.04 MB, 235 KB/s, 0 seconds passed
    ...6%, 0.05 MB, 281 KB/s, 0 seconds passed
    ...7%, 0.05 MB, 328 KB/s, 0 seconds passed
    ...8%, 0.06 MB, 374 KB/s, 0 seconds passed
    ...9%, 0.07 MB, 419 KB/s, 0 seconds passed
    ...10%, 0.08 MB, 465 KB/s, 0 seconds passed
    ...11%, 0.09 MB, 511 KB/s, 0 seconds passed
    ...13%, 0.09 MB, 556 KB/s, 0 seconds passed
    ...14%, 0.10 MB, 602 KB/s, 0 seconds passed
    ...15%, 0.11 MB, 648 KB/s, 0 seconds passed
    ...16%, 0.12 MB, 693 KB/s, 0 seconds passed
    ...17%, 0.12 MB, 738 KB/s, 0 seconds passed
    ...18%, 0.13 MB, 783 KB/s, 0 seconds passed
    ...19%, 0.14 MB, 827 KB/s, 0 seconds passed
    ...20%, 0.15 MB, 872 KB/s, 0 seconds passed
    ...21%, 0.16 MB, 916 KB/s, 0 seconds passed
    ...22%, 0.16 MB, 961 KB/s, 0 seconds passed
 
    ...23%, 0.17 MB, 1006 KB/s, 0 seconds passed
    ...25%, 0.18 MB, 1050 KB/s, 0 seconds passed
    ...26%, 0.19 MB, 1093 KB/s, 0 seconds passed
    ...27%, 0.20 MB, 1138 KB/s, 0 seconds passed
    ...28%, 0.20 MB, 1181 KB/s, 0 seconds passed
    ...29%, 0.21 MB, 1223 KB/s, 0 seconds passed
    ...30%, 0.22 MB, 1267 KB/s, 0 seconds passed
    ...31%, 0.23 MB, 1311 KB/s, 0 seconds passed
    ...32%, 0.23 MB, 1355 KB/s, 0 seconds passed
    ...33%, 0.24 MB, 1397 KB/s, 0 seconds passed
    ...34%, 0.25 MB, 1441 KB/s, 0 seconds passed
    ...35%, 0.26 MB, 1484 KB/s, 0 seconds passed
    ...36%, 0.27 MB, 1528 KB/s, 0 seconds passed
    ...38%, 0.27 MB, 1572 KB/s, 0 seconds passed
    ...39%, 0.28 MB, 1616 KB/s, 0 seconds passed
    ...40%, 0.29 MB, 1654 KB/s, 0 seconds passed
    ...41%, 0.30 MB, 1698 KB/s, 0 seconds passed
    ...42%, 0.30 MB, 1741 KB/s, 0 seconds passed
    ...43%, 0.31 MB, 1785 KB/s, 0 seconds passed
    ...44%, 0.32 MB, 1824 KB/s, 0 seconds passed
    ...45%, 0.33
  MB, 1868 KB/s, 0 seconds passed
    ...46%, 0.34 MB, 1911 KB/s, 0 seconds passed
    ...47%, 0.34 MB, 1954 KB/s, 0 seconds passed
    ...48%, 0.35 MB, 1996 KB/s, 0 seconds passed
    ...50%, 0.36 MB, 2040 KB/s, 0 seconds passed
    ...51%, 0.37 MB, 2078 KB/s, 0 seconds passed
    ...52%, 0.38 MB, 2121 KB/s, 0 seconds passed
    ...53%, 0.38 MB, 2164 KB/s, 0 seconds passed
    ...54%, 0.39 MB, 2207 KB/s, 0 seconds passed
    ...55%, 0.40 MB, 2241 KB/s, 0 seconds passed
    ...56%, 0.41 MB, 2283 KB/s, 0 seconds passed
    ...57%, 0.41 MB, 2325 KB/s, 0 seconds passed
    ...58%, 0.42 MB, 2368 KB/s, 0 seconds passed
    ...59%, 0.43 MB, 2410 KB/s, 0 seconds passed
    ...60%, 0.44 MB, 2453 KB/s, 0 seconds passed
    ...62%, 0.45 MB, 2492 KB/s, 0 seconds passed
    ...63%, 0.45 MB, 2534 KB/s, 0 seconds passed
    ...64%, 0.46 MB, 2574 KB/s, 0 seconds passed
    ...65%, 0.47 MB, 2616 KB/s, 0 seconds passed
    ...66%, 0.48 MB, 2658 KB/s, 0 seconds passed
    ...67%, 0.48 MB, 2701 KB/s, 0
  seconds passed
    ...68%, 0.49 MB, 2734 KB/s, 0 seconds passed
    ...69%, 0.50 MB, 2775 KB/s, 0 seconds passed
    ...70%, 0.51 MB, 2816 KB/s, 0 seconds passed
    ...71%, 0.52 MB, 2858 KB/s, 0 seconds passed
    ...72%, 0.52 MB, 2900 KB/s, 0 seconds passed
    ...73%, 0.53 MB, 2942 KB/s, 0 seconds passed
    ...75%, 0.54 MB, 2979 KB/s, 0 seconds passed
    ...76%, 0.55 MB, 3021 KB/s, 0 seconds passed
    ...77%, 0.55 MB, 3059 KB/s, 0 seconds passed
    ...78%, 0.56 MB, 3100 KB/s, 0 seconds passed
    ...79%, 0.57 MB, 3141 KB/s, 0 seconds passed
    ...80%, 0.58 MB, 3183 KB/s, 0 seconds passed
    ...81%, 0.59 MB, 3219 KB/s, 0 seconds passed
    ...82%, 0.59 MB, 3260 KB/s, 0 seconds passed
    ...83%, 0.60 MB, 3298 KB/s, 0 seconds passed
    ...84%, 0.61 MB, 3339 KB/s, 0 seconds passed
    ...85%, 0.62 MB, 3380 KB/s, 0 seconds passed
    ...87%, 0.62 MB, 3421 KB/s, 0 seconds passed
    ...88%, 0.63 MB, 3455 KB/s, 0 seconds passed
    ...89%, 0.64 MB, 3496 KB/s, 0 seconds passed
 
    ...90%, 0.65 MB, 3536 KB/s, 0 seconds passed
    ...91%, 0.66 MB, 3576 KB/s, 0 seconds passed
    ...92%, 0.66 MB, 3617 KB/s, 0 seconds passed
    ...93%, 0.67 MB, 3657 KB/s, 0 seconds passed
    ...94%, 0.68 MB, 3697 KB/s, 0 seconds passed
    ...95%, 0.69 MB, 3738 KB/s, 0 seconds passed
    ...96%, 0.70 MB, 3777 KB/s, 0 seconds passed
    ...97%, 0.70 MB, 3818 KB/s, 0 seconds passed
    ...99%, 0.71 MB, 3858 KB/s, 0 seconds passed
    ...100%, 0.72 MB, 3894 KB/s, 0 seconds passed
     Extracted 10 conv2d tasks:
     (1, 14, 14, 256, 512, 1, 1, 0, 0, 2, 2)
     (1, 28, 28, 128, 256, 1, 1, 0, 0, 2, 2)
diff --git a/docs/_sources/vta/tutorials/frontend/deploy_classification.rst.txt b/docs/_sources/vta/tutorials/frontend/deploy_classification.rst.txt
index 606f2da..16551ea 100644
--- a/docs/_sources/vta/tutorials/frontend/deploy_classification.rst.txt
+++ b/docs/_sources/vta/tutorials/frontend/deploy_classification.rst.txt
@@ -243,8 +243,8 @@ The compilation steps are:
 
  .. code-block:: none
 
-
    ...12%, 0.01 MB, 198 KB/s, 0 seconds passed
    ...25%, 0.02 MB, 331 KB/s, 0 seconds passed
    ...38%, 0.02 MB, 495 KB/s, 0 seconds passed
    ...51%, 0.03 MB, 651 KB/s, 0 seconds passed
    ...64%, 0.04 MB, 800 KB/s, 0 seconds passed
    ...77%, 0.05 MB, 840 KB/s, 0 seconds passed
    ...89%, 0.05 MB, 974 KB/s, 0 seconds passed
    ...100%, 0.06 MB, 1091 KB/s, 0 seconds passed
-    resnet18_v1 inference graph built in 5.16s!
+
    ...12%, 0.01 MB, 514 KB/s, 0 seconds passed
    ...25%, 0.02 MB, 984 KB/s, 0 seconds passed
    ...38%, 0.02 MB, 1457 KB/s, 0 seconds passed
    ...51%, 0.03 MB, 1921 KB/s, 0 seconds passed
    ...64%, 0.04 MB, 2350 KB/s, 0 seconds passed
    ...77%, 0.05 MB, 2726 KB/s, 0 seconds passed
    ...89%, 0.05 MB, 3114 KB/s, 0 seconds passed
    ...100%, 0.06 MB, 3482 KB/s, 0 seconds passed
+    resnet18_v1 inference graph built in 5.00s!
 
 
 
diff --git a/docs/_sources/vta/tutorials/frontend/deploy_detection.rst.txt b/docs/_sources/vta/tutorials/frontend/deploy_detection.rst.txt
index cb3c11a..c809b41 100644
--- a/docs/_sources/vta/tutorials/frontend/deploy_detection.rst.txt
+++ b/docs/_sources/vta/tutorials/frontend/deploy_detection.rst.txt
@@ -315,7 +315,7 @@ The compilation steps are:
 
  .. code-block:: none
 
-    yolov3-tiny inference graph built in 6.05s!
+    yolov3-tiny inference graph built in 6.07s!
 
 
 
diff --git a/docs/_sources/vta/tutorials/frontend/sg_execution_times.rst.txt b/docs/_sources/vta/tutorials/frontend/sg_execution_times.rst.txt
index 0742ef5..ed0f549 100644
--- a/docs/_sources/vta/tutorials/frontend/sg_execution_times.rst.txt
+++ b/docs/_sources/vta/tutorials/frontend/sg_execution_times.rst.txt
@@ -5,7 +5,7 @@
 
 Computation times
 =================
-**01:01.239** total execution time for **vta_tutorials_frontend** files:
+**01:14.029** total execution time for **vta_tutorials_frontend** files:
 
-- **00:36.704**: :ref:`sphx_glr_vta_tutorials_frontend_deploy_detection.py` (``deploy_detection.py``)
-- **00:24.535**: :ref:`sphx_glr_vta_tutorials_frontend_deploy_classification.py` (``deploy_classification.py``)
+- **00:43.679**: :ref:`sphx_glr_vta_tutorials_frontend_deploy_detection.py` (``deploy_detection.py``)
+- **00:30.350**: :ref:`sphx_glr_vta_tutorials_frontend_deploy_classification.py` (``deploy_classification.py``)
diff --git a/docs/_sources/vta/tutorials/optimize/convolution_opt.rst.txt b/docs/_sources/vta/tutorials/optimize/convolution_opt.rst.txt
index 011c550..ce0e246 100644
--- a/docs/_sources/vta/tutorials/optimize/convolution_opt.rst.txt
+++ b/docs/_sources/vta/tutorials/optimize/convolution_opt.rst.txt
@@ -257,8 +257,8 @@ Those include:
 
     primfn(data_1: handle, kernel_1: handle, res_1: handle) -> ()
       attr = {"global_symbol": "main", "tir.noalias": True}
-      buffers = {res: Buffer(res_2: handle, int8, [1, 16, 14, 14, 1, 16], []),
-                 kernel: Buffer(kernel_2: handle, int8, [16, 16, 3, 3, 16, 16], []),
+      buffers = {kernel: Buffer(kernel_2: handle, int8, [16, 16, 3, 3, 16, 16], []),
+                 res: Buffer(res_2: handle, int8, [1, 16, 14, 14, 1, 16], []),
                  data: Buffer(data_2: handle, int8, [1, 16, 14, 14, 1, 16], [])}
       buffer_map = {data_1: data, kernel_1: kernel, res_1: res} {
       attr [data_buf: handle] "storage_scope" = "global";
@@ -453,8 +453,8 @@ below.
 
     primfn(data_1: handle, kernel_1: handle, res_1: handle) -> ()
       attr = {"global_symbol": "main", "tir.noalias": True}
-      buffers = {kernel: Buffer(kernel_2: handle, int8, [16, 16, 3, 3, 16, 16], []),
-                 res: Buffer(res_2: handle, int8, [1, 16, 14, 14, 1, 16], []),
+      buffers = {res: Buffer(res_2: handle, int8, [1, 16, 14, 14, 1, 16], []),
+                 kernel: Buffer(kernel_2: handle, int8, [16, 16, 3, 3, 16, 16], []),
                  data: Buffer(data_2: handle, int8, [1, 16, 14, 14, 1, 16], [])}
       buffer_map = {data_1: data, kernel_1: kernel, res_1: res} {
       attr [data_buf: handle] "storage_scope" = "global";
diff --git a/docs/_sources/vta/tutorials/optimize/matrix_multiply_opt.rst.txt b/docs/_sources/vta/tutorials/optimize/matrix_multiply_opt.rst.txt
index f114ffc..e3e44ab 100644
--- a/docs/_sources/vta/tutorials/optimize/matrix_multiply_opt.rst.txt
+++ b/docs/_sources/vta/tutorials/optimize/matrix_multiply_opt.rst.txt
@@ -202,8 +202,8 @@ Those include:
 
     primfn(data_1: handle, weight_1: handle, res_1: handle) -> ()
       attr = {"global_symbol": "main", "tir.noalias": True}
-      buffers = {weight: Buffer(weight_2: handle, int8, [64, 64, 16, 16], []),
-                 res: Buffer(res_2: handle, int8, [1, 64, 1, 16], []),
+      buffers = {res: Buffer(res_2: handle, int8, [1, 64, 1, 16], []),
+                 weight: Buffer(weight_2: handle, int8, [64, 64, 16, 16], []),
                  data: Buffer(data_2: handle, int8, [1, 64, 1, 16], [])}
       buffer_map = {data_1: data, weight_1: weight, res_1: res} {
       attr [data_buf: handle] "storage_scope" = "global";
diff --git a/docs/_sources/vta/tutorials/optimize/sg_execution_times.rst.txt b/docs/_sources/vta/tutorials/optimize/sg_execution_times.rst.txt
index 742aea9..1891759 100644
--- a/docs/_sources/vta/tutorials/optimize/sg_execution_times.rst.txt
+++ b/docs/_sources/vta/tutorials/optimize/sg_execution_times.rst.txt
@@ -5,7 +5,7 @@
 
 Computation times
 =================
-**00:03.704** total execution time for **vta_tutorials_optimize** files:
+**00:03.515** total execution time for **vta_tutorials_optimize** files:
 
-- **00:03.219**: :ref:`sphx_glr_vta_tutorials_optimize_convolution_opt.py` (``convolution_opt.py``)
-- **00:00.485**: :ref:`sphx_glr_vta_tutorials_optimize_matrix_multiply_opt.py` (``matrix_multiply_opt.py``)
+- **00:02.987**: :ref:`sphx_glr_vta_tutorials_optimize_convolution_opt.py` (``convolution_opt.py``)
+- **00:00.528**: :ref:`sphx_glr_vta_tutorials_optimize_matrix_multiply_opt.py` (``matrix_multiply_opt.py``)
diff --git a/docs/_sources/vta/tutorials/sg_execution_times.rst.txt b/docs/_sources/vta/tutorials/sg_execution_times.rst.txt
index c60b471..8765209 100644
--- a/docs/_sources/vta/tutorials/sg_execution_times.rst.txt
+++ b/docs/_sources/vta/tutorials/sg_execution_times.rst.txt
@@ -5,7 +5,7 @@
 
 Computation times
 =================
-**00:00.855** total execution time for **vta_tutorials** files:
+**00:01.005** total execution time for **vta_tutorials** files:
 
-- **00:00.449**: :ref:`sphx_glr_vta_tutorials_matrix_multiply.py` (``matrix_multiply.py``)
-- **00:00.406**: :ref:`sphx_glr_vta_tutorials_vta_get_started.py` (``vta_get_started.py``)
+- **00:00.506**: :ref:`sphx_glr_vta_tutorials_matrix_multiply.py` (``matrix_multiply.py``)
+- **00:00.499**: :ref:`sphx_glr_vta_tutorials_vta_get_started.py` (``vta_get_started.py``)
diff --git a/docs/api/doxygen/annotated.html b/docs/api/doxygen/annotated.html
index 046d591..15b11bf 100644
--- a/docs/api/doxygen/annotated.html
+++ b/docs/api/doxygen/annotated.html
@@ -115,611 +115,689 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 <tr id="row_2_0_16_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1arith_1_1ModularSetAnalyzer.html" target="_self">ModularSetAnalyzer</a></td><td class="desc"><a class="el" href="classtvm_1_1arith_1_1Analyzer.html" title="Analyzer that contains bunch of sub-analyzers. ">Analyzer</a> to get modular information over expression </td></tr>
 <tr id="row_2_0_17_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1arith_1_1ModularSetNode.html" target="_self">ModularSetNode</a></td><td class="desc"><a class="el" href="classtvm_1_1Range.html" title="Range constainer. ">Range</a> of a linear integer function. Use to do specify the possible index values </td></tr>
 <tr id="row_2_0_18_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1arith_1_1RewriteSimplifier.html" target="_self">RewriteSimplifier</a></td><td class="desc">Rewrite-rule based simplifier </td></tr>
-<tr id="row_2_1_" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_2_1_" class="arrow" onclick="toggleFolder('2_1_')">&#9658;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacetvm_1_1detail.html" target="_self">detail</a></td><td class="desc"></td></tr>
-<tr id="row_2_1_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1detail_1_1AttrDocEntry.html" target="_self">AttrDocEntry</a></td><td class="desc"></td></tr>
-<tr id="row_2_1_1_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1detail_1_1AttrDocVisitor.html" target="_self">AttrDocVisitor</a></td><td class="desc"></td></tr>
-<tr id="row_2_1_2_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1detail_1_1AttrExistVisitor.html" target="_self">AttrExistVisitor</a></td><td class="desc"></td></tr>
-<tr id="row_2_1_3_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1detail_1_1AttrInitEntry.html" target="_self">AttrInitEntry</a></td><td class="desc"></td></tr>
-<tr id="row_2_1_4_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1detail_1_1AttrInitVisitor.html" target="_self">AttrInitVisitor</a></td><td class="desc"></td></tr>
-<tr id="row_2_1_5_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1detail_1_1AttrNonDefaultVisitor.html" target="_self">AttrNonDefaultVisitor</a></td><td class="desc"></td></tr>
-<tr id="row_2_1_6_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1detail_1_1AttrNopEntry.html" target="_self">AttrNopEntry</a></td><td class="desc"></td></tr>
-<tr id="row_2_1_7_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1detail_1_1AttrNormalVisitor.html" target="_self">AttrNormalVisitor</a></td><td class="desc"></td></tr>
-<tr id="row_2_1_8_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1detail_1_1AttrsSEqualVisitor.html" target="_self">AttrsSEqualVisitor</a></td><td class="desc"></td></tr>
-<tr id="row_2_1_9_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1detail_1_1AttrsSHashVisitor.html" target="_self">AttrsSHashVisitor</a></td><td class="desc"></td></tr>
-<tr id="row_2_1_10_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1detail_1_1AttrTriggerNonDefaultEntry.html" target="_self">AttrTriggerNonDefaultEntry</a></td><td class="desc"></td></tr>
-<tr id="row_2_1_11_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1detail_1_1ImplSEqualReduce.html" target="_self">ImplSEqualReduce</a></td><td class="desc"></td></tr>
-<tr id="row_2_1_12_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1detail_1_1ImplSEqualReduce_3_01T_00_01true_01_4.html" target="_self">ImplSEqualReduce&lt; T, true &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_2_1_13_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1detail_1_1ImplSHashReduce.html" target="_self">ImplSHashReduce</a></td><td class="desc"></td></tr>
-<tr id="row_2_1_14_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1detail_1_1ImplSHashReduce_3_01T_00_01true_01_4.html" target="_self">ImplSHashReduce&lt; T, true &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_2_1_15_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1detail_1_1ImplVisitAttrs.html" target="_self">ImplVisitAttrs</a></td><td class="desc"></td></tr>
-<tr id="row_2_1_16_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1detail_1_1ImplVisitAttrs_3_01T_00_01true_01_4.html" target="_self">ImplVisitAttrs&lt; T, true &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_2_1_17_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1detail_1_1is__specialized.html" target="_self">is_specialized</a></td><td class="desc"></td></tr>
-<tr id="row_2_1_18_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1detail_1_1is__specialized_3_01Container_3_01Args_8_8_8_01_4_00_01Container_01_4.html" target="_self">is_specialized&lt; Container&lt; Args... &gt;, Container &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_2_1_19_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1detail_1_1ReflectionTrait.html" target="_self">ReflectionTrait</a></td><td class="desc"></td></tr>
-<tr id="row_2_1_20_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1detail_1_1SelectSEqualReduce.html" target="_self">SelectSEqualReduce</a></td><td class="desc"></td></tr>
-<tr id="row_2_1_21_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1detail_1_1SelectSEqualReduce_3_01T_00_01TraitName_00_01false_01_4.html" target="_self">SelectSEqualReduce&lt; T, TraitName, false &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_2_1_22_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1detail_1_1SelectSHashReduce.html" target="_self">SelectSHashReduce</a></td><td class="desc"></td></tr>
-<tr id="row_2_1_23_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1detail_1_1SelectSHashReduce_3_01T_00_01TraitName_00_01false_01_4.html" target="_self">SelectSHashReduce&lt; T, TraitName, false &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_2_1_24_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1detail_1_1SelectVisitAttrs.html" target="_self">SelectVisitAttrs</a></td><td class="desc"></td></tr>
-<tr id="row_2_1_25_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1detail_1_1SelectVisitAttrs_3_01T_00_01TraitName_00_01false_01_4.html" target="_self">SelectVisitAttrs&lt; T, TraitName, false &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_2_1_26_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1detail_1_1TypeName.html" target="_self">TypeName</a></td><td class="desc">Helper struct to get the type name known to tvm </td></tr>
-<tr id="row_2_1_27_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1detail_1_1TypeName_3_01bool_01_4.html" target="_self">TypeName&lt; bool &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_2_1_28_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1detail_1_1TypeName_3_01DataType_01_4.html" target="_self">TypeName&lt; DataType &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_2_1_29_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1detail_1_1TypeName_3_01double_01_4.html" target="_self">TypeName&lt; double &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_2_1_30_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1detail_1_1TypeName_3_01int_01_4.html" target="_self">TypeName&lt; int &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_2_1_31_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1detail_1_1TypeName_3_01int64__t_01_4.html" target="_self">TypeName&lt; int64_t &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_2_1_32_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1detail_1_1TypeName_3_01uint64__t_01_4.html" target="_self">TypeName&lt; uint64_t &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_2_1_33_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1detail_1_1TypeName_3_01void_01_5_01_4.html" target="_self">TypeName&lt; void * &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_2_1_34_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1detail_1_1ValueTypeInfoMaker.html" target="_self">ValueTypeInfoMaker</a></td><td class="desc"></td></tr>
-<tr id="row_2_2_" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_2_2_" class="arrow" onclick="toggleFolder('2_2_')">&#9658;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacetvm_1_1relay.html" target="_self">relay</a></td><td class="desc">Relay: a high level functional IR for TVM </td></tr>
-<tr id="row_2_2_0_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_2_2_0_" class="arrow" onclick="toggleFolder('2_2_0_')">&#9658;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacetvm_1_1relay_1_1qnn.html" target="_self">qnn</a></td><td class="desc"></td></tr>
-<tr id="row_2_2_0_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1qnn_1_1DequantizeAttrs.html" target="_self">DequantizeAttrs</a></td><td class="desc">Attribute for dequantize operator </td></tr>
-<tr id="row_2_2_0_1_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1qnn_1_1QuantizeAttrs.html" target="_self">QuantizeAttrs</a></td><td class="desc">Attribute for quantize operator </td></tr>
-<tr id="row_2_2_0_2_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1qnn_1_1RequantizeAttrs.html" target="_self">RequantizeAttrs</a></td><td class="desc">Attribute for requantize operator </td></tr>
-<tr id="row_2_2_1_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1AdaptivePool2DAttrs.html" target="_self">AdaptivePool2DAttrs</a></td><td class="desc">Attributes for adaptive pool operator </td></tr>
-<tr id="row_2_2_2_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1AdaptivePool3DAttrs.html" target="_self">AdaptivePool3DAttrs</a></td><td class="desc"></td></tr>
-<tr id="row_2_2_3_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1AffineGridAttrs.html" target="_self">AffineGridAttrs</a></td><td class="desc">Attributes used in image affine_grid operator </td></tr>
-<tr id="row_2_2_4_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1AllocStorageAttrs.html" target="_self">AllocStorageAttrs</a></td><td class="desc">Options for allocating storage </td></tr>
-<tr id="row_2_2_5_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1AllocTensorAttrs.html" target="_self">AllocTensorAttrs</a></td><td class="desc">Options for allocating tensors </td></tr>
-<tr id="row_2_2_6_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1AltPattern.html" target="_self">AltPattern</a></td><td class="desc">A pattern which matches either of two patterns </td></tr>
-<tr id="row_2_2_7_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1AltPatternNode.html" target="_self">AltPatternNode</a></td><td class="desc"><a class="el" href="classtvm_1_1relay_1_1Pattern.html" title="Pattern is the base type for an ADT match pattern in Relay. ">Pattern</a> for Alternate Expressions </td></tr>
-<tr id="row_2_2_8_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ArangeAttrs.html" target="_self">ArangeAttrs</a></td><td class="desc">Attributes used in arange operators </td></tr>
-<tr id="row_2_2_9_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ArgsortAttrs.html" target="_self">ArgsortAttrs</a></td><td class="desc">Attributes used in argsort operators </td></tr>
-<tr id="row_2_2_10_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1AttrPattern.html" target="_self">AttrPattern</a></td><td class="desc">A pattern which matches attributes in another pattern </td></tr>
-<tr id="row_2_2_11_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1AttrPatternNode.html" target="_self">AttrPatternNode</a></td><td class="desc"><a class="el" href="classtvm_1_1relay_1_1Pattern.html" title="Pattern is the base type for an ADT match pattern in Relay. ">Pattern</a> for Attributes </td></tr>
-<tr id="row_2_2_12_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1AvgPool1DAttrs.html" target="_self">AvgPool1DAttrs</a></td><td class="desc">Attributes for 1D avg pool operator </td></tr>
-<tr id="row_2_2_13_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1AvgPool2DAttrs.html" target="_self">AvgPool2DAttrs</a></td><td class="desc">Attributes for avg pool operator </td></tr>
-<tr id="row_2_2_14_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1AvgPool3DAttrs.html" target="_self">AvgPool3DAttrs</a></td><td class="desc">Attributes for 3D avg pool operator </td></tr>
-<tr id="row_2_2_15_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1BatchNormAttrs.html" target="_self">BatchNormAttrs</a></td><td class="desc">Attributes used in batch_norm operator </td></tr>
-<tr id="row_2_2_16_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1BiasAddAttrs.html" target="_self">BiasAddAttrs</a></td><td class="desc">Add a 1D Tensor to an axis of a data </td></tr>
-<tr id="row_2_2_17_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1BinaryConv2DAttrs.html" target="_self">BinaryConv2DAttrs</a></td><td class="desc">Attribues used in bitserial convolution operators </td></tr>
-<tr id="row_2_2_18_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1BinaryDenseAttrs.html" target="_self">BinaryDenseAttrs</a></td><td class="desc"></td></tr>
-<tr id="row_2_2_19_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1BitPackAttrs.html" target="_self">BitPackAttrs</a></td><td class="desc">Attributes used in bitpack operators </td></tr>
-<tr id="row_2_2_20_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1Call.html" target="_self">Call</a></td><td class="desc"></td></tr>
-<tr id="row_2_2_21_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1CallNode.html" target="_self">CallNode</a></td><td class="desc"><a class="el" href="classtvm_1_1relay_1_1Call.html">Call</a> container </td></tr>
-<tr id="row_2_2_22_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1CallPattern.html" target="_self">CallPattern</a></td><td class="desc"></td></tr>
-<tr id="row_2_2_23_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1CallPatternNode.html" target="_self">CallPatternNode</a></td><td class="desc"><a class="el" href="classtvm_1_1relay_1_1CallPattern.html">CallPattern</a> container </td></tr>
-<tr id="row_2_2_24_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1CastAttrs.html" target="_self">CastAttrs</a></td><td class="desc">Data type cast </td></tr>
-<tr id="row_2_2_25_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1CastHintAttrs.html" target="_self">CastHintAttrs</a></td><td class="desc">Annotate an expression to be cast into specific data type </td></tr>
-<tr id="row_2_2_26_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1Clause.html" target="_self">Clause</a></td><td class="desc"></td></tr>
-<tr id="row_2_2_27_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1ClauseNode.html" target="_self">ClauseNode</a></td><td class="desc"><a class="el" href="classtvm_1_1relay_1_1Clause.html">Clause</a> container node </td></tr>
-<tr id="row_2_2_28_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ClipAttrs.html" target="_self">ClipAttrs</a></td><td class="desc">Attributes for Clip operator </td></tr>
-<tr id="row_2_2_29_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1CompilerAttrs.html" target="_self">CompilerAttrs</a></td><td class="desc">Options for the operators used to annotate a compiler </td></tr>
-<tr id="row_2_2_30_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ConcatenateAttrs.html" target="_self">ConcatenateAttrs</a></td><td class="desc">Attributes used in concatenate operators </td></tr>
-<tr id="row_2_2_31_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1Constant.html" target="_self">Constant</a></td><td class="desc"></td></tr>
-<tr id="row_2_2_32_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1ConstantNode.html" target="_self">ConstantNode</a></td><td class="desc"><a class="el" href="classtvm_1_1relay_1_1Constant.html">Constant</a> tensor type </td></tr>
-<tr id="row_2_2_33_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1ConstantPattern.html" target="_self">ConstantPattern</a></td><td class="desc"></td></tr>
-<tr id="row_2_2_34_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1ConstantPatternNode.html" target="_self">ConstantPatternNode</a></td><td class="desc">Container for <a class="el" href="classtvm_1_1relay_1_1Constant.html">Constant</a> </td></tr>
-<tr id="row_2_2_35_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1ConstructorValue.html" target="_self">ConstructorValue</a></td><td class="desc"></td></tr>
-<tr id="row_2_2_36_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ConstructorValueObj.html" target="_self">ConstructorValueObj</a></td><td class="desc"></td></tr>
-<tr id="row_2_2_37_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1Conv1DAttrs.html" target="_self">Conv1DAttrs</a></td><td class="desc">Attributes used in 1D convolution operators </td></tr>
-<tr id="row_2_2_38_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1Conv1DTransposeAttrs.html" target="_self">Conv1DTransposeAttrs</a></td><td class="desc">Attributes used in 1D transposed convolution operator </td></tr>
-<tr id="row_2_2_39_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1Conv2DAttrs.html" target="_self">Conv2DAttrs</a></td><td class="desc">Attributes used in convolution operators </td></tr>
-<tr id="row_2_2_40_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1Conv2DTransposeAttrs.html" target="_self">Conv2DTransposeAttrs</a></td><td class="desc">Attributes used in transposed convolution operator </td></tr>
-<tr id="row_2_2_41_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1Conv2DWinogradAttrs.html" target="_self">Conv2DWinogradAttrs</a></td><td class="desc">Attributes used in convolution operators with winograd algorithm </td></tr>
-<tr id="row_2_2_42_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1Conv2DWinogradNNPACKWeightTransformAttrs.html" target="_self">Conv2DWinogradNNPACKWeightTransformAttrs</a></td><td class="desc">Attributes used in winograd weight transformation operators </td></tr>
-<tr id="row_2_2_43_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1Conv3DAttrs.html" target="_self">Conv3DAttrs</a></td><td class="desc">Attributes used in convolution operators </td></tr>
-<tr id="row_2_2_44_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1Conv3DTransposeAttrs.html" target="_self">Conv3DTransposeAttrs</a></td><td class="desc">Attributes used in transposed convolution operator </td></tr>
-<tr id="row_2_2_45_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1Conv3DWinogradAttrs.html" target="_self">Conv3DWinogradAttrs</a></td><td class="desc">Attributes used in 3d winograd convolution operators </td></tr>
-<tr id="row_2_2_46_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ConvGemmWeightTransformAttrs.html" target="_self">ConvGemmWeightTransformAttrs</a></td><td class="desc">Attributes used in gemm weight transformation operators </td></tr>
-<tr id="row_2_2_47_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ConvWinogradWeightTransformAttrs.html" target="_self">ConvWinogradWeightTransformAttrs</a></td><td class="desc">Attributes used in winograd weight transformation operators </td></tr>
-<tr id="row_2_2_48_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1CorrelationAttrs.html" target="_self">CorrelationAttrs</a></td><td class="desc">Attributes used in correlation operators </td></tr>
-<tr id="row_2_2_49_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1CropAndResizeAttrs.html" target="_self">CropAndResizeAttrs</a></td><td class="desc">Attributes used in image crop_and_resize operator </td></tr>
-<tr id="row_2_2_50_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1DataTypePattern.html" target="_self">DataTypePattern</a></td><td class="desc">A pattern which matches a type in another pattern </td></tr>
-<tr id="row_2_2_51_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1DataTypePatternNode.html" target="_self">DataTypePatternNode</a></td><td class="desc"><a class="el" href="classtvm_1_1relay_1_1Pattern.html" title="Pattern is the base type for an ADT match pattern in Relay. ">Pattern</a> for Types </td></tr>
-<tr id="row_2_2_52_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1DebugAttrs.html" target="_self">DebugAttrs</a></td><td class="desc">Options for the debug operators </td></tr>
-<tr id="row_2_2_53_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1DeformableConv2DAttrs.html" target="_self">DeformableConv2DAttrs</a></td><td class="desc">Attributes for DeformableConv2D operator </td></tr>
-<tr id="row_2_2_54_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1DenseAttrs.html" target="_self">DenseAttrs</a></td><td class="desc">Attributes for dense operator </td></tr>
-<tr id="row_2_2_55_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1DeviceCopyAttrs.html" target="_self">DeviceCopyAttrs</a></td><td class="desc">Options for the device copy operators </td></tr>
-<tr id="row_2_2_56_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1DFPattern.html" target="_self">DFPattern</a></td><td class="desc">Managed reference to dataflow patterns </td></tr>
-<tr id="row_2_2_57_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1DFPatternCallback.html" target="_self">DFPatternCallback</a></td><td class="desc">Managed reference to dataflow pattern callbacks </td></tr>
-<tr id="row_2_2_58_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1DFPatternCallbackNode.html" target="_self">DFPatternCallbackNode</a></td><td class="desc">Base type of all dataflow pattern callbacks </td></tr>
-<tr id="row_2_2_59_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1DFPatternFunctor.html" target="_self">DFPatternFunctor</a></td><td class="desc">A dynamical functor that dispatches on in the first <a class="el" href="classtvm_1_1relay_1_1DFPattern.html" title="Managed reference to dataflow patterns. ">DFPattern</a> argument </td></tr>
-<tr id="row_2_2_60_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1DFPatternFunctor_3_01R_07const_01DFPattern_01_6n_00_01Args_8_8_8_08_4.html" target="_self">DFPatternFunctor&lt; R(const DFPattern &amp;n, Args...)&gt;</a></td><td class="desc"></td></tr>
-<tr id="row_2_2_61_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1DFPatternNode.html" target="_self">DFPatternNode</a></td><td class="desc">Base type of all dataflow patterns </td></tr>
-<tr id="row_2_2_62_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1DFPatternVisitor.html" target="_self">DFPatternVisitor</a></td><td class="desc">A simple visitor wrapper around <a class="el" href="classtvm_1_1relay_1_1DFPatternFunctor.html" title="A dynamical functor that dispatches on in the first DFPattern argument. ">DFPatternFunctor</a [...]
-<tr id="row_2_2_63_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1DilateAttrs.html" target="_self">DilateAttrs</a></td><td class="desc">Attributes used in dilate operator </td></tr>
-<tr id="row_2_2_64_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1Dilation2DAttrs.html" target="_self">Dilation2DAttrs</a></td><td class="desc">Attributes used in dilation operators </td></tr>
-<tr id="row_2_2_65_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1DominatorPattern.html" target="_self">DominatorPattern</a></td><td class="desc">A pattern which matches a variable length dominator path </td></tr>
-<tr id="row_2_2_66_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1DominatorPatternNode.html" target="_self">DominatorPatternNode</a></td><td class="desc">Dominated Graph <a class="el" href="classtvm_1_1relay_1_1Pattern.html" title="Pattern is the base type for an ADT match pattern in Relay. ">Pattern</a> <a class="el" href="classtvm_1_1rela [...]
-<tr id="row_2_2_67_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1DropoutAttrs.html" target="_self">DropoutAttrs</a></td><td class="desc">Attributes used in dropout operator </td></tr>
-<tr id="row_2_2_68_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ExpandDimsAttrs.html" target="_self">ExpandDimsAttrs</a></td><td class="desc">Attributes used in expand_dims operators </td></tr>
-<tr id="row_2_2_69_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1ExprFunctor.html" target="_self">ExprFunctor</a></td><td class="desc">A dynamical functor that dispatches on in the first Expr argument. You can use this as a more powerful Visitor, since it allows you to define function signatures of Visit <a class="el" href="classtvm_1_1rel [...]
-<tr id="row_2_2_70_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1ExprFunctor_3_01R_07const_01Expr_01_6n_00_01Args_8_8_8_08_4.html" target="_self">ExprFunctor&lt; R(const Expr &amp;n, Args...)&gt;</a></td><td class="desc"></td></tr>
-<tr id="row_2_2_71_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1ExprMutator.html" target="_self">ExprMutator</a></td><td class="desc">A wrapper around <a class="el" href="classtvm_1_1relay_1_1ExprFunctor.html" title="A dynamical functor that dispatches on in the first Expr argument. You can use this as a more powerfu...">ExprFunctor</a> w [...]
-<tr id="row_2_2_72_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1ExprPattern.html" target="_self">ExprPattern</a></td><td class="desc">A pattern which matches a literal expression </td></tr>
-<tr id="row_2_2_73_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1ExprPatternNode.html" target="_self">ExprPatternNode</a></td><td class="desc"><a class="el" href="classtvm_1_1relay_1_1Pattern.html" title="Pattern is the base type for an ADT match pattern in Relay. ">Pattern</a> for Relay Expression </td></tr>
-<tr id="row_2_2_74_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1ExprRewriter.html" target="_self">ExprRewriter</a></td><td class="desc">A non-iterating Expression Rewriter </td></tr>
-<tr id="row_2_2_75_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1ExprVisitor.html" target="_self">ExprVisitor</a></td><td class="desc">A simple visitor wrapper around <a class="el" href="classtvm_1_1relay_1_1ExprFunctor.html" title="A dynamical functor that dispatches on in the first Expr argument. You can use this as a more powerfu...">Ex [...]
-<tr id="row_2_2_76_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1FeatureSet.html" target="_self">FeatureSet</a></td><td class="desc">A finite set of Feature </td></tr>
-<tr id="row_2_2_77_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1FIFOBufferAttrs.html" target="_self">FIFOBufferAttrs</a></td><td class="desc">Attributes for FIFO buffer operator </td></tr>
-<tr id="row_2_2_78_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1FixedPointMultiplyAttrs.html" target="_self">FixedPointMultiplyAttrs</a></td><td class="desc">Attributes for FixedPointMultiply operator </td></tr>
-<tr id="row_2_2_79_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1Function.html" target="_self">Function</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1relay_1_1FunctionNode.html" title="Relay Function container. ">FunctionNode</a> </td></tr>
-<tr id="row_2_2_80_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1FunctionNode.html" target="_self">FunctionNode</a></td><td class="desc">Relay <a class="el" href="classtvm_1_1relay_1_1Function.html" title="Managed reference to FunctionNode. ">Function</a> container </td></tr>
-<tr id="row_2_2_81_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1GatherAttrs.html" target="_self">GatherAttrs</a></td><td class="desc"></td></tr>
-<tr id="row_2_2_82_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1GetValidCountsAttrs.html" target="_self">GetValidCountsAttrs</a></td><td class="desc">Attributes used in get_valid_counts operator </td></tr>
-<tr id="row_2_2_83_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1GlobalPool2DAttrs.html" target="_self">GlobalPool2DAttrs</a></td><td class="desc">Attributes for global pool operator </td></tr>
-<tr id="row_2_2_84_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1GridSampleAttrs.html" target="_self">GridSampleAttrs</a></td><td class="desc">Attributes used in image grid_sample operator </td></tr>
-<tr id="row_2_2_85_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1GroupNormAttrs.html" target="_self">GroupNormAttrs</a></td><td class="desc">Attributes used in group_norm operator </td></tr>
-<tr id="row_2_2_86_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1Id.html" target="_self">Id</a></td><td class="desc"></td></tr>
-<tr id="row_2_2_87_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1IdNode.html" target="_self">IdNode</a></td><td class="desc">The unique identifier of variables </td></tr>
-<tr id="row_2_2_88_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1If.html" target="_self">If</a></td><td class="desc"></td></tr>
-<tr id="row_2_2_89_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1IfNode.html" target="_self">IfNode</a></td><td class="desc">Container of <a class="el" href="classtvm_1_1relay_1_1If.html">If</a> </td></tr>
-<tr id="row_2_2_90_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1InitOpAttrs.html" target="_self">InitOpAttrs</a></td><td class="desc">Attributes that specify a tensor </td></tr>
-<tr id="row_2_2_91_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1InstanceNormAttrs.html" target="_self">InstanceNormAttrs</a></td><td class="desc">Attributes used in instance_norm operator </td></tr>
-<tr id="row_2_2_92_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1InterpreterClosure.html" target="_self">InterpreterClosure</a></td><td class="desc"></td></tr>
-<tr id="row_2_2_93_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1InterpreterClosureObj.html" target="_self">InterpreterClosureObj</a></td><td class="desc">The container type of Closures used by the interpreter </td></tr>
-<tr id="row_2_2_94_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1L2NormalizeAttrs.html" target="_self">L2NormalizeAttrs</a></td><td class="desc">Attributes for L2Normalize operator </td></tr>
-<tr id="row_2_2_95_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1LayerNormAttrs.html" target="_self">LayerNormAttrs</a></td><td class="desc">Attributes used in layer_norm operator </td></tr>
-<tr id="row_2_2_96_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1LayoutTransformAttrs.html" target="_self">LayoutTransformAttrs</a></td><td class="desc">Attributes for LayoutTransform operator </td></tr>
-<tr id="row_2_2_97_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1LeakyReluAttrs.html" target="_self">LeakyReluAttrs</a></td><td class="desc">Attributes for leaky relu operator </td></tr>
-<tr id="row_2_2_98_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1Let.html" target="_self">Let</a></td><td class="desc"></td></tr>
-<tr id="row_2_2_99_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1LetNode.html" target="_self">LetNode</a></td><td class="desc">A binding of a sub-network </td></tr>
-<tr id="row_2_2_100_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1LRNAttrs.html" target="_self">LRNAttrs</a></td><td class="desc">Attributes for LRN operator </td></tr>
-<tr id="row_2_2_101_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1Match.html" target="_self">Match</a></td><td class="desc"></td></tr>
-<tr id="row_2_2_102_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1MatchNode.html" target="_self">MatchNode</a></td><td class="desc"><a class="el" href="classtvm_1_1relay_1_1Match.html">Match</a> container node </td></tr>
-<tr id="row_2_2_103_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1MaxPool1DAttrs.html" target="_self">MaxPool1DAttrs</a></td><td class="desc">Attributes for 1D max pool operator </td></tr>
-<tr id="row_2_2_104_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1MaxPool2DAttrs.html" target="_self">MaxPool2DAttrs</a></td><td class="desc">Attributes for max pool operator </td></tr>
-<tr id="row_2_2_105_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1MaxPool3DAttrs.html" target="_self">MaxPool3DAttrs</a></td><td class="desc">Attributes for 3D max pool operator </td></tr>
-<tr id="row_2_2_106_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1MeshgridAttrs.html" target="_self">MeshgridAttrs</a></td><td class="desc">Attributes used in meshgrid operators </td></tr>
-<tr id="row_2_2_107_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1MirrorPadAttrs.html" target="_self">MirrorPadAttrs</a></td><td class="desc">Attributes used for the MirrorPadding operator </td></tr>
-<tr id="row_2_2_108_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1MixedModeMutator.html" target="_self">MixedModeMutator</a></td><td class="desc">Non-recursive DFS Graph Traversal for Custom Rewriting Passes </td></tr>
-<tr id="row_2_2_109_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1MixedModeVisitor.html" target="_self">MixedModeVisitor</a></td><td class="desc">A wrapper around <a class="el" href="classtvm_1_1relay_1_1ExprVisitor.html" title="A simple visitor wrapper around ExprFunctor. Recursively visit the content. ">ExprVisitor</a> which traverses th [...]
-<tr id="row_2_2_110_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1MultiBoxPriorAttrs.html" target="_self">MultiBoxPriorAttrs</a></td><td class="desc">Attributes used in multibox_prior operators </td></tr>
-<tr id="row_2_2_111_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1MultiBoxTransformLocAttrs.html" target="_self">MultiBoxTransformLocAttrs</a></td><td class="desc"></td></tr>
-<tr id="row_2_2_112_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1NdarraySizeAttrs.html" target="_self">NdarraySizeAttrs</a></td><td class="desc">Attributes for ndarray_size operator </td></tr>
-<tr id="row_2_2_113_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1NonMaximumSuppressionAttrs.html" target="_self">NonMaximumSuppressionAttrs</a></td><td class="desc">Attributes used in non_maximum_suppression operator </td></tr>
-<tr id="row_2_2_114_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1OnDeviceAttrs.html" target="_self">OnDeviceAttrs</a></td><td class="desc">Options for the device annotation operators </td></tr>
-<tr id="row_2_2_115_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1OneHotAttrs.html" target="_self">OneHotAttrs</a></td><td class="desc">Attributes used in one-hot operator </td></tr>
-<tr id="row_2_2_116_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1OpImplementation.html" target="_self">OpImplementation</a></td><td class="desc">Operator implementation class </td></tr>
-<tr id="row_2_2_117_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1OpImplementationNode.html" target="_self">OpImplementationNode</a></td><td class="desc">Operator implementation that includes compute and schedule function </td></tr>
-<tr id="row_2_2_118_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1OpSpecialization.html" target="_self">OpSpecialization</a></td><td class="desc">Operator specialization class </td></tr>
-<tr id="row_2_2_119_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1OpSpecializationNode.html" target="_self">OpSpecializationNode</a></td><td class="desc">Specialized implementations for operators under certain conditions </td></tr>
-<tr id="row_2_2_120_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1OpStrategy.html" target="_self">OpStrategy</a></td><td class="desc">Operator strategy class </td></tr>
-<tr id="row_2_2_121_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1OpStrategyNode.html" target="_self">OpStrategyNode</a></td><td class="desc">Operator strategy to choose implementation </td></tr>
-<tr id="row_2_2_122_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1PadAttrs.html" target="_self">PadAttrs</a></td><td class="desc">Attributes used for the padding operator </td></tr>
-<tr id="row_2_2_123_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1Pattern.html" target="_self">Pattern</a></td><td class="desc"><a class="el" href="classtvm_1_1relay_1_1Pattern.html" title="Pattern is the base type for an ADT match pattern in Relay. ">Pattern</a> is the base type for an ADT match pattern in Relay </td></tr>
-<tr id="row_2_2_124_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1PatternConstructor.html" target="_self">PatternConstructor</a></td><td class="desc"></td></tr>
-<tr id="row_2_2_125_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1PatternConstructorNode.html" target="_self">PatternConstructorNode</a></td><td class="desc"><a class="el" href="classtvm_1_1relay_1_1PatternVar.html">PatternVar</a> container node </td></tr>
-<tr id="row_2_2_126_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1PatternFunctor.html" target="_self">PatternFunctor</a></td><td class="desc">A dynamical functor on ADT patterns that dispatches on its first argument. You can use this as a more powerful visitor, since it allows you to define the types of further arguments to VisitPattern </ [...]
-<tr id="row_2_2_127_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1PatternFunctor_3_01R_07const_01Pattern_01_6n_00_01Args_8_8_8_08_4.html" target="_self">PatternFunctor&lt; R(const Pattern &amp;n, Args...)&gt;</a></td><td class="desc"></td></tr>
-<tr id="row_2_2_128_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1PatternMutator.html" target="_self">PatternMutator</a></td><td class="desc">A wrapper around <a class="el" href="classtvm_1_1relay_1_1ExprFunctor.html" title="A dynamical functor that dispatches on in the first Expr argument. You can use this as a more powerfu...">ExprFuncto [...]
-<tr id="row_2_2_129_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1PatternNode.html" target="_self">PatternNode</a></td><td class="desc">Base type for declaring relay pattern </td></tr>
-<tr id="row_2_2_130_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1PatternTuple.html" target="_self">PatternTuple</a></td><td class="desc"></td></tr>
-<tr id="row_2_2_131_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1PatternTupleNode.html" target="_self">PatternTupleNode</a></td><td class="desc"><a class="el" href="classtvm_1_1relay_1_1PatternVar.html">PatternVar</a> container node </td></tr>
-<tr id="row_2_2_132_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1PatternVar.html" target="_self">PatternVar</a></td><td class="desc"></td></tr>
-<tr id="row_2_2_133_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1PatternVarNode.html" target="_self">PatternVarNode</a></td><td class="desc"><a class="el" href="classtvm_1_1relay_1_1PatternVar.html">PatternVar</a> container node </td></tr>
-<tr id="row_2_2_134_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1PatternVisitor.html" target="_self">PatternVisitor</a></td><td class="desc">A simple visitor wrapper around <a class="el" href="classtvm_1_1relay_1_1PatternFunctor.html" title="A dynamical functor on ADT patterns that dispatches on its first argument. You can use this as a m [...]
-<tr id="row_2_2_135_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1PatternWildcard.html" target="_self">PatternWildcard</a></td><td class="desc"></td></tr>
-<tr id="row_2_2_136_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1PatternWildcardNode.html" target="_self">PatternWildcardNode</a></td><td class="desc"><a class="el" href="classtvm_1_1relay_1_1PatternWildcard.html">PatternWildcard</a> container node </td></tr>
-<tr id="row_2_2_137_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1PReluAttrs.html" target="_self">PReluAttrs</a></td><td class="desc">Attributes for prelu operator </td></tr>
-<tr id="row_2_2_138_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ProposalAttrs.html" target="_self">ProposalAttrs</a></td><td class="desc">Attributes used in proposal operators </td></tr>
-<tr id="row_2_2_139_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1RecClosure.html" target="_self">RecClosure</a></td><td class="desc"></td></tr>
-<tr id="row_2_2_140_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1RecClosureObj.html" target="_self">RecClosureObj</a></td><td class="desc">The container type of <a class="el" href="classtvm_1_1relay_1_1RecClosure.html">RecClosure</a> </td></tr>
-<tr id="row_2_2_141_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ReduceAttrs.html" target="_self">ReduceAttrs</a></td><td class="desc">Attributes for Reduce operators </td></tr>
-<tr id="row_2_2_142_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1RefCreate.html" target="_self">RefCreate</a></td><td class="desc"></td></tr>
-<tr id="row_2_2_143_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1RefCreateNode.html" target="_self">RefCreateNode</a></td><td class="desc"></td></tr>
-<tr id="row_2_2_144_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1RefRead.html" target="_self">RefRead</a></td><td class="desc"></td></tr>
-<tr id="row_2_2_145_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1RefReadNode.html" target="_self">RefReadNode</a></td><td class="desc"></td></tr>
-<tr id="row_2_2_146_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1RefValue.html" target="_self">RefValue</a></td><td class="desc"></td></tr>
-<tr id="row_2_2_147_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1RefValueObj.html" target="_self">RefValueObj</a></td><td class="desc"></td></tr>
-<tr id="row_2_2_148_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1RefWrite.html" target="_self">RefWrite</a></td><td class="desc"></td></tr>
-<tr id="row_2_2_149_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1RefWriteNode.html" target="_self">RefWriteNode</a></td><td class="desc"></td></tr>
-<tr id="row_2_2_150_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1RelayNode.html" target="_self">RelayNode</a></td><td class="desc">This is the base node container of all relay structures </td></tr>
-<tr id="row_2_2_151_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1RepeatAttrs.html" target="_self">RepeatAttrs</a></td><td class="desc">Attributes used in repeat operators </td></tr>
-<tr id="row_2_2_152_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ReshapeAttrs.html" target="_self">ReshapeAttrs</a></td><td class="desc">Attributes used in reshape operators </td></tr>
-<tr id="row_2_2_153_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ReshapeTensorAttrs.html" target="_self">ReshapeTensorAttrs</a></td><td class="desc">Attributes for VM reshape_tensor operator </td></tr>
-<tr id="row_2_2_154_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1Resize3dAttrs.html" target="_self">Resize3dAttrs</a></td><td class="desc">Attributes used in image resize3d operator </td></tr>
-<tr id="row_2_2_155_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ResizeAttrs.html" target="_self">ResizeAttrs</a></td><td class="desc">Attributes used in image resize operator </td></tr>
-<tr id="row_2_2_156_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ReverseAttrs.html" target="_self">ReverseAttrs</a></td><td class="desc">Attributes used in reverse operators </td></tr>
-<tr id="row_2_2_157_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ReverseSequenceAttrs.html" target="_self">ReverseSequenceAttrs</a></td><td class="desc">Attributes used in reverse_sequence operators </td></tr>
-<tr id="row_2_2_158_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ROIAlignAttrs.html" target="_self">ROIAlignAttrs</a></td><td class="desc">Attributes used in roi_align operators </td></tr>
-<tr id="row_2_2_159_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ROIPoolAttrs.html" target="_self">ROIPoolAttrs</a></td><td class="desc">Attributes used in roi_pool operators </td></tr>
-<tr id="row_2_2_160_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ScatterAddAttrs.html" target="_self">ScatterAddAttrs</a></td><td class="desc"></td></tr>
-<tr id="row_2_2_161_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ScatterAttrs.html" target="_self">ScatterAttrs</a></td><td class="desc"></td></tr>
-<tr id="row_2_2_162_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1SequenceMaskAttrs.html" target="_self">SequenceMaskAttrs</a></td><td class="desc"></td></tr>
-<tr id="row_2_2_163_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ShapeFuncAttrs.html" target="_self">ShapeFuncAttrs</a></td><td class="desc">Options for the shape function operator </td></tr>
-<tr id="row_2_2_164_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ShapeOfAttrs.html" target="_self">ShapeOfAttrs</a></td><td class="desc">Attributes for ShapeOf operator </td></tr>
-<tr id="row_2_2_165_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1ShapePattern.html" target="_self">ShapePattern</a></td><td class="desc">A pattern which matches a type in another pattern </td></tr>
-<tr id="row_2_2_166_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1ShapePatternNode.html" target="_self">ShapePatternNode</a></td><td class="desc"><a class="el" href="classtvm_1_1relay_1_1Pattern.html" title="Pattern is the base type for an ADT match pattern in Relay. ">Pattern</a> for Shapes </td></tr>
-<tr id="row_2_2_167_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1SliceLikeAttrs.html" target="_self">SliceLikeAttrs</a></td><td class="desc"></td></tr>
-<tr id="row_2_2_168_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1SoftmaxAttrs.html" target="_self">SoftmaxAttrs</a></td><td class="desc">Attributes used in softmax operators </td></tr>
-<tr id="row_2_2_169_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1SparseDenseAttrs.html" target="_self">SparseDenseAttrs</a></td><td class="desc">Attributes for sparse_dense operator </td></tr>
-<tr id="row_2_2_170_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1SparseToDenseAttrs.html" target="_self">SparseToDenseAttrs</a></td><td class="desc">Attributes used in sparse_to_dense operator </td></tr>
-<tr id="row_2_2_171_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1SparseTransposeAttrs.html" target="_self">SparseTransposeAttrs</a></td><td class="desc">Attributes for sparse_transpose operator </td></tr>
-<tr id="row_2_2_172_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1SplitAttrs.html" target="_self">SplitAttrs</a></td><td class="desc"></td></tr>
-<tr id="row_2_2_173_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1SqueezeAttrs.html" target="_self">SqueezeAttrs</a></td><td class="desc">Attributes used in squeeze operators </td></tr>
-<tr id="row_2_2_174_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1StackAttrs.html" target="_self">StackAttrs</a></td><td class="desc">Attributes used in stack operators </td></tr>
-<tr id="row_2_2_175_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1StridedSliceAttrs.html" target="_self">StridedSliceAttrs</a></td><td class="desc">Attributes for StridedSlice operator </td></tr>
-<tr id="row_2_2_176_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1SubPixelAttrs.html" target="_self">SubPixelAttrs</a></td><td class="desc">Attributes used in subpixel operators </td></tr>
-<tr id="row_2_2_177_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1TakeAttrs.html" target="_self">TakeAttrs</a></td><td class="desc"></td></tr>
-<tr id="row_2_2_178_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1TempExpr.html" target="_self">TempExpr</a></td><td class="desc"></td></tr>
-<tr id="row_2_2_179_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1TempExprNode.html" target="_self">TempExprNode</a></td><td class="desc">Base class of the temporary expression </td></tr>
-<tr id="row_2_2_180_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1TileAttrs.html" target="_self">TileAttrs</a></td><td class="desc">Attributes used in tile operators </td></tr>
-<tr id="row_2_2_181_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1TopKAttrs.html" target="_self">TopKAttrs</a></td><td class="desc"></td></tr>
-<tr id="row_2_2_182_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1TransposeAttrs.html" target="_self">TransposeAttrs</a></td><td class="desc">Attributes used in transpose operators </td></tr>
-<tr id="row_2_2_183_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1Tuple.html" target="_self">Tuple</a></td><td class="desc"></td></tr>
-<tr id="row_2_2_184_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1TupleGetItem.html" target="_self">TupleGetItem</a></td><td class="desc"></td></tr>
-<tr id="row_2_2_185_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1TupleGetItemNode.html" target="_self">TupleGetItemNode</a></td><td class="desc"></td></tr>
-<tr id="row_2_2_186_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1TupleGetItemPattern.html" target="_self">TupleGetItemPattern</a></td><td class="desc"></td></tr>
-<tr id="row_2_2_187_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1TupleGetItemPatternNode.html" target="_self">TupleGetItemPatternNode</a></td><td class="desc"></td></tr>
-<tr id="row_2_2_188_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1TupleNode.html" target="_self">TupleNode</a></td><td class="desc"><a class="el" href="classtvm_1_1relay_1_1Tuple.html">Tuple</a> container </td></tr>
-<tr id="row_2_2_189_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1TuplePattern.html" target="_self">TuplePattern</a></td><td class="desc"></td></tr>
-<tr id="row_2_2_190_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1TuplePatternNode.html" target="_self">TuplePatternNode</a></td><td class="desc"><a class="el" href="classtvm_1_1relay_1_1Tuple.html">Tuple</a> container </td></tr>
-<tr id="row_2_2_191_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1TypePattern.html" target="_self">TypePattern</a></td><td class="desc">A pattern which matches a type in another pattern </td></tr>
-<tr id="row_2_2_192_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1TypePatternNode.html" target="_self">TypePatternNode</a></td><td class="desc"><a class="el" href="classtvm_1_1relay_1_1Pattern.html" title="Pattern is the base type for an ADT match pattern in Relay. ">Pattern</a> for Types </td></tr>
-<tr id="row_2_2_193_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1UpSampling3DAttrs.html" target="_self">UpSampling3DAttrs</a></td><td class="desc">Attributes for upsampling3d operator </td></tr>
-<tr id="row_2_2_194_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1UpSamplingAttrs.html" target="_self">UpSamplingAttrs</a></td><td class="desc">Attributes for upsampling operator </td></tr>
-<tr id="row_2_2_195_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1Var.html" target="_self">Var</a></td><td class="desc"></td></tr>
-<tr id="row_2_2_196_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1VarNode.html" target="_self">VarNode</a></td><td class="desc">Container for <a class="el" href="classtvm_1_1relay_1_1Var.html">Var</a> </td></tr>
-<tr id="row_2_2_197_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1VarPattern.html" target="_self">VarPattern</a></td><td class="desc"></td></tr>
-<tr id="row_2_2_198_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1VarPatternNode.html" target="_self">VarPatternNode</a></td><td class="desc">Container for <a class="el" href="classtvm_1_1relay_1_1Var.html">Var</a> </td></tr>
-<tr id="row_2_2_199_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1WildcardPattern.html" target="_self">WildcardPattern</a></td><td class="desc">A pattern which matches anything </td></tr>
-<tr id="row_2_2_200_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1WildcardPatternNode.html" target="_self">WildcardPatternNode</a></td><td class="desc">Wildcard <a class="el" href="classtvm_1_1relay_1_1Pattern.html" title="Pattern is the base type for an ADT match pattern in Relay. ">Pattern</a> </td></tr>
-<tr id="row_2_2_201_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1YoloReorgAttrs.html" target="_self">YoloReorgAttrs</a></td><td class="desc">Attributes used in yolo reorg operators </td></tr>
-<tr id="row_2_3_" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_2_3_" class="arrow" onclick="toggleFolder('2_3_')">&#9658;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacetvm_1_1runtime.html" target="_self">runtime</a></td><td class="desc"></td></tr>
-<tr id="row_2_3_0_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_2_3_0_" class="arrow" onclick="toggleFolder('2_3_0_')">&#9658;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacetvm_1_1runtime_1_1threading.html" target="_self">threading</a></td><td class="desc"></td></tr>
-<tr id="row_2_3_0_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1runtime_1_1threading_1_1ThreadGroup.html" target="_self">ThreadGroup</a></td><td class="desc">A platform-agnostic abstraction for managing a collection of thread pool threads </td></tr>
-<tr id="row_2_3_1_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_2_3_1_" class="arrow" onclick="toggleFolder('2_3_1_')">&#9658;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacetvm_1_1runtime_1_1vm.html" target="_self">vm</a></td><td class="desc"></td></tr>
-<tr id="row_2_3_1_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1runtime_1_1vm_1_1Closure.html" target="_self">Closure</a></td><td class="desc">Reference to closure </td></tr>
-<tr id="row_2_3_1_1_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1runtime_1_1vm_1_1ClosureObj.html" target="_self">ClosureObj</a></td><td class="desc">An object representing a closure. This object is used by both the Relay VM and interpreter </td></tr>
-<tr id="row_2_3_1_2_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1runtime_1_1vm_1_1Executable.html" target="_self">Executable</a></td><td class="desc">The executable emitted by the VM compiler </td></tr>
-<tr id="row_2_3_1_3_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1runtime_1_1vm_1_1Instruction.html" target="_self">Instruction</a></td><td class="desc">A single virtual machine instruction </td></tr>
-<tr id="row_2_3_1_4_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1runtime_1_1vm_1_1VirtualMachine.html" target="_self">VirtualMachine</a></td><td class="desc">The virtual machine </td></tr>
-<tr id="row_2_3_1_5_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1runtime_1_1vm_1_1VMClosure.html" target="_self">VMClosure</a></td><td class="desc">Reference to closure </td></tr>
-<tr id="row_2_3_1_6_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1runtime_1_1vm_1_1VMClosureObj.html" target="_self">VMClosureObj</a></td><td class="desc">An object representing a vm closure </td></tr>
-<tr id="row_2_3_1_7_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1runtime_1_1vm_1_1VMFrame.html" target="_self">VMFrame</a></td><td class="desc">A representation of a stack frame </td></tr>
-<tr id="row_2_3_1_8_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1runtime_1_1vm_1_1VMFunction.html" target="_self">VMFunction</a></td><td class="desc">A representation of a Relay function in the VM </td></tr>
-<tr id="row_2_3_2_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1runtime_1_1ADT.html" target="_self">ADT</a></td><td class="desc">Reference to algebraic data type objects </td></tr>
-<tr id="row_2_3_3_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1runtime_1_1ADTObj.html" target="_self">ADTObj</a></td><td class="desc">An object representing a structure or enumeration </td></tr>
-<tr id="row_2_3_4_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_2_3_4_" class="arrow" onclick="toggleFolder('2_3_4_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1runtime_1_1Array.html" target="_self">Array</a></td><td class="desc"><a class="el" href="classtvm_1_1runtime_1_1Array.html" title="Array, container representing a contigious sequence of ObjectRefs. ">Arr [...]
-<tr id="row_2_3_4_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1runtime_1_1Array_1_1ValueConverter.html" target="_self">ValueConverter</a></td><td class="desc"></td></tr>
-<tr id="row_2_3_5_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1runtime_1_1ArrayNode.html" target="_self">ArrayNode</a></td><td class="desc"><a class="el" href="classtvm_1_1runtime_1_1Array.html" title="Array, container representing a contigious sequence of ObjectRefs. ">Array</a> node content in array </td></tr>
-<tr id="row_2_3_6_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1runtime_1_1DataType.html" target="_self">DataType</a></td><td class="desc">Runtime primitive data type </td></tr>
-<tr id="row_2_3_7_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1runtime_1_1DeviceAPI.html" target="_self">DeviceAPI</a></td><td class="desc">TVM Runtime Device API, abstracts the device specific interface for memory management </td></tr>
-<tr id="row_2_3_8_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1runtime_1_1InplaceArrayBase.html" target="_self">InplaceArrayBase</a></td><td class="desc">Base template for classes with array like memory layout </td></tr>
-<tr id="row_2_3_9_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1runtime_1_1IterAdapter.html" target="_self">IterAdapter</a></td><td class="desc">Iterator adapter that adapts TIter to return another type </td></tr>
-<tr id="row_2_3_10_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1runtime_1_1Module.html" target="_self">Module</a></td><td class="desc"><a class="el" href="classtvm_1_1runtime_1_1Module.html" title="Module container of TVM. ">Module</a> container of TVM </td></tr>
-<tr id="row_2_3_11_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1runtime_1_1ModuleNode.html" target="_self">ModuleNode</a></td><td class="desc">Base container of module </td></tr>
-<tr id="row_2_3_12_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_2_3_12_" class="arrow" onclick="toggleFolder('2_3_12_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1runtime_1_1NDArray.html" target="_self">NDArray</a></td><td class="desc">Managed <a class="el" href="classtvm_1_1runtime_1_1NDArray.html" title="Managed NDArray. The array is backed by reference count [...]
-<tr id="row_2_3_12_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1runtime_1_1NDArray_1_1Container.html" target="_self">Container</a></td><td class="desc"><a class="el" href="classtvm_1_1runtime_1_1Object.html" title="base class of all object containers. ">Object</a> container class that backs <a class="el" href="classtvm_1_1runtime_1_1NDArray.html [...]
-<tr id="row_2_3_12_1_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1runtime_1_1NDArray_1_1ContainerBase.html" target="_self">ContainerBase</a></td><td class="desc">The container base structure contains all the fields except for the <a class="el" href="classtvm_1_1runtime_1_1Object.html" title="base class of all object containers. ">Object</a> header [...]
-<tr id="row_2_3_13_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1runtime_1_1NullOptType.html" target="_self">NullOptType</a></td><td class="desc">Helper to represent nullptr for optional </td></tr>
-<tr id="row_2_3_14_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1runtime_1_1ObjAllocatorBase.html" target="_self">ObjAllocatorBase</a></td><td class="desc">Base class of object allocators that implements make. Use curiously recurring template pattern </td></tr>
-<tr id="row_2_3_15_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1runtime_1_1Object.html" target="_self">Object</a></td><td class="desc">Base class of all object containers </td></tr>
-<tr id="row_2_3_16_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1runtime_1_1ObjectEqual.html" target="_self">ObjectEqual</a></td><td class="desc">String-aware <a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html" title="Base class of all object reference. ">ObjectRef</a> hash functor </td></tr>
-<tr id="row_2_3_17_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1runtime_1_1ObjectHash.html" target="_self">ObjectHash</a></td><td class="desc">String-aware <a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html" title="Base class of all object reference. ">ObjectRef</a> equal functor </td></tr>
-<tr id="row_2_3_18_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1runtime_1_1ObjectPtr.html" target="_self">ObjectPtr</a></td><td class="desc">A custom smart pointer for <a class="el" href="classtvm_1_1runtime_1_1Object.html" title="base class of all object containers. ">Object</a> </td></tr>
-<tr id="row_2_3_19_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1runtime_1_1ObjectPtrEqual.html" target="_self">ObjectPtrEqual</a></td><td class="desc"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html" title="Base class of all object reference. ">ObjectRef</a> equal functor </td></tr>
-<tr id="row_2_3_20_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1runtime_1_1ObjectPtrHash.html" target="_self">ObjectPtrHash</a></td><td class="desc"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html" title="Base class of all object reference. ">ObjectRef</a> hash functor </td></tr>
-<tr id="row_2_3_21_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html" target="_self">ObjectRef</a></td><td class="desc">Base class of all object reference </td></tr>
-<tr id="row_2_3_22_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1runtime_1_1ObjectTypeChecker.html" target="_self">ObjectTypeChecker</a></td><td class="desc"><a class="el" href="classtvm_1_1Type.html" title="Managed reference to TypeNode. ">Type</a> traits for runtime type check during FFI conversion </td></tr>
-<tr id="row_2_3_23_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1runtime_1_1ObjectTypeChecker_3_01Array_3_01T_01_4_01_4.html" target="_self">ObjectTypeChecker&lt; Array&lt; T &gt; &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_2_3_24_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1runtime_1_1ObjectTypeChecker_3_01Map_3_01K_00_01V_01_4_01_4.html" target="_self">ObjectTypeChecker&lt; Map&lt; K, V &gt; &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_2_3_25_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1runtime_1_1Optional.html" target="_self">Optional</a></td><td class="desc"><a class="el" href="classtvm_1_1runtime_1_1Optional.html" title="Optional container that to represent to a Nullable variant of T. ">Optional</a> container that to represent to a Nullable variant of T </td></tr>
-<tr id="row_2_3_26_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1runtime_1_1PackedFunc.html" target="_self">PackedFunc</a></td><td class="desc">Packed function is a type-erased function. The arguments are passed by packed format </td></tr>
-<tr id="row_2_3_27_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1runtime_1_1PackedFuncValueConverter.html" target="_self">PackedFuncValueConverter</a></td><td class="desc"><a class="el" href="classtvm_1_1Type.html" title="Managed reference to TypeNode. ">Type</a> trait to specify special value conversion rules from <a class="el" href="classtvm_1_1 [...]
-<tr id="row_2_3_28_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1runtime_1_1PackedFuncValueConverter_3_01Optional_3_01T_01_4_01_4.html" target="_self">PackedFuncValueConverter&lt; Optional&lt; T &gt; &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_2_3_29_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1runtime_1_1PackedFuncValueConverter_3_01PrimExpr_01_4.html" target="_self">PackedFuncValueConverter&lt; PrimExpr &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_2_3_30_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1runtime_1_1PackedFuncValueConverter_3_01tvm_1_1Bool_01_4.html" target="_self">PackedFuncValueConverter&lt; tvm::Bool &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_2_3_31_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1runtime_1_1PackedFuncValueConverter_3_01tvm_1_1Integer_01_4.html" target="_self">PackedFuncValueConverter&lt; tvm::Integer &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_2_3_32_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1runtime_1_1PackedFuncValueConverter_3_1_1tvm_1_1runtime_1_1String_01_4.html" target="_self">PackedFuncValueConverter&lt;::tvm::runtime::String &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_2_3_33_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1runtime_1_1Registry.html" target="_self">Registry</a></td><td class="desc"><a class="el" href="classtvm_1_1runtime_1_1Registry.html" title="Registry for global function. ">Registry</a> for global function </td></tr>
-<tr id="row_2_3_34_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1runtime_1_1ReverseIterAdapter.html" target="_self">ReverseIterAdapter</a></td><td class="desc">Iterator adapter that adapts TIter to return another type </td></tr>
-<tr id="row_2_3_35_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_2_3_35_" class="arrow" onclick="toggleFolder('2_3_35_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1runtime_1_1SimpleObjAllocator.html" target="_self">SimpleObjAllocator</a></td><td class="desc"></td></tr>
-<tr id="row_2_3_35_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1runtime_1_1SimpleObjAllocator_1_1ArrayHandler.html" target="_self">ArrayHandler</a></td><td class="desc"></td></tr>
-<tr id="row_2_3_35_1_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1runtime_1_1SimpleObjAllocator_1_1Handler.html" target="_self">Handler</a></td><td class="desc"></td></tr>
-<tr id="row_2_3_36_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1runtime_1_1String.html" target="_self">String</a></td><td class="desc">Reference to string objects </td></tr>
-<tr id="row_2_3_37_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_2_3_37_" class="arrow" onclick="toggleFolder('2_3_37_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1runtime_1_1StringObj.html" target="_self">StringObj</a></td><td class="desc">An object representing string. It's POD type </td></tr>
-<tr id="row_2_3_37_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1runtime_1_1StringObj_1_1FromStd.html" target="_self">FromStd</a></td><td class="desc">An object representing string moved from std::string </td></tr>
-<tr id="row_2_3_38_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1runtime_1_1TVMArgs.html" target="_self">TVMArgs</a></td><td class="desc">Arguments into TVM functions </td></tr>
-<tr id="row_2_3_39_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1runtime_1_1TVMArgsSetter.html" target="_self">TVMArgsSetter</a></td><td class="desc"></td></tr>
-<tr id="row_2_3_40_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1runtime_1_1TVMArgValue.html" target="_self">TVMArgValue</a></td><td class="desc">A single argument value to <a class="el" href="classtvm_1_1runtime_1_1PackedFunc.html" title="Packed function is a type-erased function. The arguments are passed by packed format. ">PackedFunc</a>. Contai [...]
-<tr id="row_2_3_41_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1runtime_1_1TVMMovableArgValue__.html" target="_self">TVMMovableArgValue_</a></td><td class="desc">Internal auxiliary struct for <a class="el" href="classtvm_1_1runtime_1_1TypedPackedFunc.html" title="Please refer to TypedPackedFunc&lt;R(Args..)&gt;. ">TypedPackedFunc</a> to indicate a [...]
-<tr id="row_2_3_42_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1runtime_1_1TVMPODValue__.html" target="_self">TVMPODValue_</a></td><td class="desc">Internal base class to handle conversion to POD values </td></tr>
-<tr id="row_2_3_43_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1runtime_1_1TVMRetValue.html" target="_self">TVMRetValue</a></td><td class="desc">Return Value container, Unlike <a class="el" href="classtvm_1_1runtime_1_1TVMArgValue.html" title="A single argument value to PackedFunc. Containing both type_code and TVMValue. ">TVMArgValue</a>, which o [...]
-<tr id="row_2_3_44_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1runtime_1_1TypedPackedFunc.html" target="_self">TypedPackedFunc</a></td><td class="desc">Please refer to <a class="el" href="classtvm_1_1runtime_1_1TypedPackedFunc_3_01R_07Args_8_8_8_08_4.html#TypedPackedFuncAnchor">TypedPackedFunc&lt;R(Args..)&gt;</a> </td></tr>
-<tr id="row_2_3_45_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1runtime_1_1TypedPackedFunc_3_01R_07Args_8_8_8_08_4.html" target="_self">TypedPackedFunc&lt; R(Args...)&gt;</a></td><td class="desc">A <a class="el" href="classtvm_1_1runtime_1_1PackedFunc.html" title="Packed function is a type-erased function. The arguments are passed by packed format [...]
-<tr id="row_2_3_46_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1runtime_1_1TypeIndex.html" target="_self">TypeIndex</a></td><td class="desc">Namespace for the list of type index </td></tr>
-<tr id="row_2_4_" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_2_4_" class="arrow" onclick="toggleFolder('2_4_')">&#9658;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacetvm_1_1te.html" target="_self">te</a></td><td class="desc"><a class="el" href="classtvm_1_1te_1_1Tensor.html" title="Tensor structure representing a possible input, or intermediate computation result. ">Tensor</a [...]
-<tr id="row_2_4_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1te_1_1BaseComputeOpNode.html" target="_self">BaseComputeOpNode</a></td><td class="desc">A Compute op that compute a tensor on certain domain. This is the base class for <a class="el" href="classtvm_1_1te_1_1ComputeOp.html" title="Managed reference to ComputeOpNode. ">ComputeOp</a> (ope [...]
-<tr id="row_2_4_1_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1te_1_1ComputeOp.html" target="_self">ComputeOp</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1te_1_1ComputeOpNode.html" title="A Compute op that compute a tensor on certain domain. ">ComputeOpNode</a> </td></tr>
-<tr id="row_2_4_2_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1te_1_1ComputeOpNode.html" target="_self">ComputeOpNode</a></td><td class="desc">A Compute op that compute a tensor on certain domain </td></tr>
-<tr id="row_2_4_3_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1te_1_1ExternOp.html" target="_self">ExternOp</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1te_1_1ExternOpNode.html" title="External computation that cannot be splitted. ">ExternOpNode</a> </td></tr>
-<tr id="row_2_4_4_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1te_1_1ExternOpNode.html" target="_self">ExternOpNode</a></td><td class="desc">External computation that cannot be splitted </td></tr>
-<tr id="row_2_4_5_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1te_1_1Fuse.html" target="_self">Fuse</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1te_1_1FuseNode.html" title="Fuse two domains into one domain. ">FuseNode</a> </td></tr>
-<tr id="row_2_4_6_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1te_1_1FuseNode.html" target="_self">FuseNode</a></td><td class="desc"><a class="el" href="classtvm_1_1te_1_1Fuse.html" title="Managed reference to FuseNode. ">Fuse</a> two domains into one domain </td></tr>
-<tr id="row_2_4_7_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1te_1_1HybridOp.html" target="_self">HybridOp</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1te_1_1HybridOpNode.html" title="A computation operator that generated by hybrid script. ">HybridOpNode</a> </td></tr>
-<tr id="row_2_4_8_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1te_1_1HybridOpNode.html" target="_self">HybridOpNode</a></td><td class="desc">A computation operator that generated by hybrid script </td></tr>
-<tr id="row_2_4_9_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1te_1_1IterVarAttr.html" target="_self">IterVarAttr</a></td><td class="desc">Additional scheduable attributes about IterVar </td></tr>
-<tr id="row_2_4_10_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1te_1_1IterVarAttrNode.html" target="_self">IterVarAttrNode</a></td><td class="desc">Node container for IterVar attr </td></tr>
-<tr id="row_2_4_11_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1te_1_1IterVarRelation.html" target="_self">IterVarRelation</a></td><td class="desc">The schedule relation between IterVars can be <a class="el" href="classtvm_1_1te_1_1Split.html" title="Managed reference to SplitNode. ">Split</a>, <a class="el" href="classtvm_1_1te_1_1Fuse.html" titl [...]
-<tr id="row_2_4_12_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1te_1_1IterVarRelationNode.html" target="_self">IterVarRelationNode</a></td><td class="desc">Base node of iteration var </td></tr>
-<tr id="row_2_4_13_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1te_1_1Operation.html" target="_self">Operation</a></td><td class="desc"><a class="el" href="classtvm_1_1te_1_1Operation.html" title="Operation that produces tensors. ">Operation</a> that produces tensors </td></tr>
-<tr id="row_2_4_14_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1te_1_1OperationNode.html" target="_self">OperationNode</a></td><td class="desc">Base class of all operation nodes </td></tr>
-<tr id="row_2_4_15_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1te_1_1PlaceholderOp.html" target="_self">PlaceholderOp</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1te_1_1PlaceholderOpNode.html" title="A placeholder op represents an input placeholder. ">PlaceholderOpNode</a> </td></tr>
-<tr id="row_2_4_16_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1te_1_1PlaceholderOpNode.html" target="_self">PlaceholderOpNode</a></td><td class="desc">A placeholder op represents an input placeholder </td></tr>
-<tr id="row_2_4_17_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1te_1_1Rebase.html" target="_self">Rebase</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1te_1_1RebaseNode.html" title="Rebase the iteration to make min to be 0. This is useful to normalize the Schedule to make every leaf...">RebaseNode</a> </td></tr>
-<tr id="row_2_4_18_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1te_1_1RebaseNode.html" target="_self">RebaseNode</a></td><td class="desc"><a class="el" href="classtvm_1_1te_1_1Rebase.html" title="Managed reference to RebaseNode. ">Rebase</a> the iteration to make min to be 0. This is useful to normalize the <a class="el" href="classtvm_1_1te_1_1Sc [...]
-<tr id="row_2_4_19_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1te_1_1ScanOp.html" target="_self">ScanOp</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1te_1_1ScanOpNode.html" title="Symbolic scan. ">ScanOpNode</a> </td></tr>
-<tr id="row_2_4_20_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1te_1_1ScanOpNode.html" target="_self">ScanOpNode</a></td><td class="desc">Symbolic scan </td></tr>
-<tr id="row_2_4_21_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1te_1_1Schedule.html" target="_self">Schedule</a></td><td class="desc">Global schedule container For operations and all the operations they depend on. The schedule per <a class="el" href="classtvm_1_1te_1_1Operation.html" title="Operation that produces tensors. ">Operation</a> is named [...]
-<tr id="row_2_4_22_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1te_1_1ScheduleNode.html" target="_self">ScheduleNode</a></td><td class="desc">Node container for schedule </td></tr>
-<tr id="row_2_4_23_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1te_1_1Singleton.html" target="_self">Singleton</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1te_1_1SingletonNode.html" title="Singleton iterator [0, 1) ">SingletonNode</a> </td></tr>
-<tr id="row_2_4_24_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1te_1_1SingletonNode.html" target="_self">SingletonNode</a></td><td class="desc"><a class="el" href="classtvm_1_1te_1_1Singleton.html" title="Managed reference to SingletonNode. ">Singleton</a> iterator [0, 1) </td></tr>
-<tr id="row_2_4_25_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1te_1_1SpecializedCondition.html" target="_self">SpecializedCondition</a></td><td class="desc">Specialized condition to enable op specialization </td></tr>
-<tr id="row_2_4_26_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1te_1_1SpecializedConditionNode.html" target="_self">SpecializedConditionNode</a></td><td class="desc">Container for specialization conditions </td></tr>
-<tr id="row_2_4_27_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1te_1_1Split.html" target="_self">Split</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1te_1_1SplitNode.html" title="Split the parent domain into product of outer and iter. ">SplitNode</a> </td></tr>
-<tr id="row_2_4_28_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1te_1_1SplitNode.html" target="_self">SplitNode</a></td><td class="desc"><a class="el" href="classtvm_1_1te_1_1Split.html" title="Managed reference to SplitNode. ">Split</a> the parent domain into product of outer and iter </td></tr>
-<tr id="row_2_4_29_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1te_1_1Stage.html" target="_self">Stage</a></td><td class="desc"><a class="el" href="classtvm_1_1te_1_1Stage.html" title="Stage, contains scheduling for a stage of computation. ">Stage</a>, contains scheduling for a stage of computation </td></tr>
-<tr id="row_2_4_30_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1te_1_1StageNode.html" target="_self">StageNode</a></td><td class="desc"><a class="el" href="classtvm_1_1te_1_1Stage.html" title="Stage, contains scheduling for a stage of computation. ">Stage</a> </td></tr>
-<tr id="row_2_4_31_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_2_4_31_" class="arrow" onclick="toggleFolder('2_4_31_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1te_1_1Tensor.html" target="_self">Tensor</a></td><td class="desc"><a class="el" href="classtvm_1_1te_1_1Tensor.html" title="Tensor structure representing a possible input, or intermediate computation  [...]
-<tr id="row_2_4_31_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1te_1_1Tensor_1_1Slice.html" target="_self">Slice</a></td><td class="desc">Data structure to represent a slice that fixes first k coordinates. This is used to enable syntax sugar of <a class="el" href="classtvm_1_1te_1_1Tensor.html" title="Tensor structure representing a possible inp [...]
-<tr id="row_2_4_32_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1te_1_1TensorComputeOp.html" target="_self">TensorComputeOp</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1te_1_1TensorComputeOpNode.html" title="A TenorCompute op that compute a tensor with an tensor intrinsic. ">TensorComputeOpNode</a> </td></tr>
-<tr id="row_2_4_33_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1te_1_1TensorComputeOpNode.html" target="_self">TensorComputeOpNode</a></td><td class="desc">A TenorCompute op that compute a tensor with an tensor intrinsic </td></tr>
-<tr id="row_2_4_34_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1te_1_1TensorDom.html" target="_self">TensorDom</a></td><td class="desc">Temporary data structure to store union of bounds of each axis of <a class="el" href="classtvm_1_1te_1_1Tensor.html" title="Tensor structure representing a possible input, or intermediate computation result. ">Te [...]
-<tr id="row_2_4_35_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1te_1_1TensorIntrin.html" target="_self">TensorIntrin</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1te_1_1TensorIntrinNode.html" title="Node to represent a Tensor intrinsic operator. ">TensorIntrinNode</a> </td></tr>
-<tr id="row_2_4_36_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1te_1_1TensorIntrinCall.html" target="_self">TensorIntrinCall</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1te_1_1TensorIntrinCallNode.html">TensorIntrinCallNode</a> </td></tr>
-<tr id="row_2_4_37_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1te_1_1TensorIntrinCallNode.html" target="_self">TensorIntrinCallNode</a></td><td class="desc"></td></tr>
-<tr id="row_2_4_38_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1te_1_1TensorIntrinNode.html" target="_self">TensorIntrinNode</a></td><td class="desc">Node to represent a <a class="el" href="classtvm_1_1te_1_1Tensor.html" title="Tensor structure representing a possible input, or intermediate computation result. ">Tensor</a> intrinsic operator </td></tr>
-<tr id="row_2_4_39_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1te_1_1TensorNode.html" target="_self">TensorNode</a></td><td class="desc">Node to represent a tensor </td></tr>
-<tr id="row_2_5_" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_2_5_" class="arrow" onclick="toggleFolder('2_5_')">&#9658;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacetvm_1_1tir.html" target="_self">tir</a></td><td class="desc"></td></tr>
-<tr id="row_2_5_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1Add.html" target="_self">Add</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1AddNode.html" title="a + b ">AddNode</a> </td></tr>
-<tr id="row_2_5_1_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1AddNode.html" target="_self">AddNode</a></td><td class="desc"><ul>
+<tr id="row_2_1_" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_2_1_" class="arrow" onclick="toggleFolder('2_1_')">&#9658;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacetvm_1_1auto__scheduler.html" target="_self">auto_scheduler</a></td><td class="desc"></td></tr>
+<tr id="row_2_1_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1auto__scheduler_1_1AccessAnalyzer.html" target="_self">AccessAnalyzer</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1AccessAnalyzerNode.html" title="Static analysis result for a ComputeDAG. ">AccessAnalyzerNode</a> </td></tr>
+<tr id="row_2_1_1_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1auto__scheduler_1_1AccessAnalyzerNode.html" target="_self">AccessAnalyzerNode</a></td><td class="desc">Static analysis result for a <a class="el" href="classtvm_1_1auto__scheduler_1_1ComputeDAG.html" title="Managed reference to ComputeDAGNode. ">ComputeDAG</a> </td></tr>
+<tr id="row_2_1_2_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1auto__scheduler_1_1AnnotationStep.html" target="_self">AnnotationStep</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1AnnotationStepNode.html" title="Annotation step that corresponds to vectorize, parallel, unroll and thread binding. (i. [...]
+<tr id="row_2_1_3_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1auto__scheduler_1_1AnnotationStepNode.html" target="_self">AnnotationStepNode</a></td><td class="desc">Annotation step that corresponds to vectorize, parallel, unroll and thread binding. (i.e. <a class="el" href="classtvm_1_1te_1_1Stage.html#a44d33e3920106e75dc7c68272f880812" title="Ve [...]
+<tr id="row_2_1_4_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1auto__scheduler_1_1AttachMap.html" target="_self">AttachMap</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1AttachMapNode.html" title="stores the compute_at relation between stages This stores a bi-directional mapping from stages and it. [...]
+<tr id="row_2_1_5_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_2_1_5_" class="arrow" onclick="toggleFolder('2_1_5_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1auto__scheduler_1_1AttachMapNode.html" target="_self">AttachMapNode</a></td><td class="desc">Stores the compute_at relation between stages This stores a bi-directional mapping from stages and iter: </td></tr>
+<tr id="row_2_1_5_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1auto__scheduler_1_1AttachMapNode_1_1IterKeyHash.html" target="_self">IterKeyHash</a></td><td class="desc"></td></tr>
+<tr id="row_2_1_6_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1auto__scheduler_1_1BuildResult.html" target="_self">BuildResult</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1BuildResultNode.html" title="Store the result of a build. ">BuildResultNode</a> </td></tr>
+<tr id="row_2_1_7_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1auto__scheduler_1_1BuildResultNode.html" target="_self">BuildResultNode</a></td><td class="desc">Store the result of a build </td></tr>
+<tr id="row_2_1_8_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1auto__scheduler_1_1CacheReadStep.html" target="_self">CacheReadStep</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1CacheReadStepNode.html" title="Cache read step that corresponds to te::Schedule::cache_read. ">CacheReadStepNode</a> </td></tr>
+<tr id="row_2_1_9_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1auto__scheduler_1_1CacheReadStepNode.html" target="_self">CacheReadStepNode</a></td><td class="desc">Cache read step that corresponds to <a class="el" href="classtvm_1_1te_1_1Schedule.html#a38ef95a62faf0c15f132847efa20249b" title="create a cache read of original tensor for readers. Thi [...]
+<tr id="row_2_1_10_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1auto__scheduler_1_1CacheWriteStep.html" target="_self">CacheWriteStep</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1CacheWriteStepNode.html" title="Cache write step that corresponds to te::Schedule::cache_write. ">CacheWriteStepNode</ [...]
+<tr id="row_2_1_11_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1auto__scheduler_1_1CacheWriteStepNode.html" target="_self">CacheWriteStepNode</a></td><td class="desc">Cache write step that corresponds to <a class="el" href="classtvm_1_1te_1_1Schedule.html#ada9825f59ef130a0ab0b3a01ea348d71" title="Create a cache write tensor for producing tensor. T [...]
+<tr id="row_2_1_12_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1auto__scheduler_1_1ComputeAtStep.html" target="_self">ComputeAtStep</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1ComputeAtStepNode.html" title="Compute at step that corresponds to te::Stage::compute_at. ">ComputeAtStepNode</a> </td></tr>
+<tr id="row_2_1_13_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1auto__scheduler_1_1ComputeAtStepNode.html" target="_self">ComputeAtStepNode</a></td><td class="desc">Compute at step that corresponds to <a class="el" href="classtvm_1_1te_1_1Stage.html#a071545484de7a894c01ccf0e77183730" title="specify the schedule to be computed at the parent schedul [...]
+<tr id="row_2_1_14_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1auto__scheduler_1_1ComputeDAG.html" target="_self">ComputeDAG</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1ComputeDAGNode.html" title="The TVM Auto-scheduler computational graph and related program analyses. ">ComputeDAGNode</a> </td></tr>
+<tr id="row_2_1_15_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1auto__scheduler_1_1ComputeDAGNode.html" target="_self">ComputeDAGNode</a></td><td class="desc">The TVM Auto-scheduler computational graph and related program analyses </td></tr>
+<tr id="row_2_1_16_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1auto__scheduler_1_1ComputeInlineStep.html" target="_self">ComputeInlineStep</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1ComputeInlineStepNode.html" title="Compute inline step that corresponds to te::Stage::compute_inline. ">ComputeI [...]
+<tr id="row_2_1_17_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1auto__scheduler_1_1ComputeInlineStepNode.html" target="_self">ComputeInlineStepNode</a></td><td class="desc">Compute inline step that corresponds to <a class="el" href="classtvm_1_1te_1_1Stage.html#a1c58b35e37561739440b322c29d30c3b" title="Compute the function inline. ">te::Stage::com [...]
+<tr id="row_2_1_18_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1auto__scheduler_1_1ComputeRootStep.html" target="_self">ComputeRootStep</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1ComputeRootStepNode.html" title="Compute root step that corresponds to te::Stage::compute_root. ">ComputeRootStepNod [...]
+<tr id="row_2_1_19_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1auto__scheduler_1_1ComputeRootStepNode.html" target="_self">ComputeRootStepNode</a></td><td class="desc">Compute root step that corresponds to <a class="el" href="classtvm_1_1te_1_1Stage.html#a95b58b2d2ec034ecd0bdb99f95c0b0ba" title="Compute the function at group root. ">te::Stage::co [...]
+<tr id="row_2_1_20_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1auto__scheduler_1_1FollowFusedSplitStep.html" target="_self">FollowFusedSplitStep</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1FollowFusedSplitStepNode.html" title="Similar to FollowSplitStep, but uses split factors from multiple ste [...]
+<tr id="row_2_1_21_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1auto__scheduler_1_1FollowFusedSplitStepNode.html" target="_self">FollowFusedSplitStepNode</a></td><td class="desc">Similar to <a class="el" href="classtvm_1_1auto__scheduler_1_1FollowSplitStep.html" title="Managed reference to FollowSplitStepNode. ">FollowSplitStep</a>, but uses split [...]
+<tr id="row_2_1_22_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1auto__scheduler_1_1FollowSplitStep.html" target="_self">FollowSplitStep</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1FollowSplitStepNode.html" title="Similar to SplitStepNode, but uses split factors from another step (i.e. Follow ano [...]
+<tr id="row_2_1_23_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1auto__scheduler_1_1FollowSplitStepNode.html" target="_self">FollowSplitStepNode</a></td><td class="desc">Similar to <a class="el" href="classtvm_1_1auto__scheduler_1_1SplitStepNode.html" title="Split step that corresponds to te::Stage::split with additional support of multiple-level o [...]
+<tr id="row_2_1_24_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1auto__scheduler_1_1FuseStep.html" target="_self">FuseStep</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1FuseStepNode.html" title="Fuse step that corresponds to te::Stage::fuse. ">FuseStepNode</a> </td></tr>
+<tr id="row_2_1_25_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1auto__scheduler_1_1FuseStepNode.html" target="_self">FuseStepNode</a></td><td class="desc">Fuse step that corresponds to <a class="el" href="classtvm_1_1te_1_1Stage.html#a5658065d9cbbee620bbd107d30c4ae72" title="Fuse the inner outer domain to the target. ">te::Stage::fuse</a> </td></tr>
+<tr id="row_2_1_26_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1auto__scheduler_1_1HardwareParams.html" target="_self">HardwareParams</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1HardwareParamsNode.html" title="The parameters of target hardware used to guide the SearchPolicy. ">HardwareParamsNode [...]
+<tr id="row_2_1_27_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1auto__scheduler_1_1HardwareParamsNode.html" target="_self">HardwareParamsNode</a></td><td class="desc">The parameters of target hardware used to guide the <a class="el" href="classtvm_1_1auto__scheduler_1_1SearchPolicy.html" title="Managed reference to SearchPolicyNode. ">SearchPolicy [...]
+<tr id="row_2_1_28_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1auto__scheduler_1_1Iterator.html" target="_self">Iterator</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1IteratorNode.html" title="A for loop iterator Similar to tvm::IterVar in include/tvm/tir/expr.h ">IteratorNode</a> </td></tr>
+<tr id="row_2_1_29_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1auto__scheduler_1_1IteratorNode.html" target="_self">IteratorNode</a></td><td class="desc">A for loop iterator Similar to tvm::IterVar in <code><a class="el" href="tir_2expr_8h.html" title="TIR expressions. ">include/tvm/tir/expr.h</a></code> </td></tr>
+<tr id="row_2_1_30_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1auto__scheduler_1_1LocalBuilder.html" target="_self">LocalBuilder</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1LocalBuilderNode.html" title="LocalBuilder use local CPU cores to build programs in parallel. ">LocalBuilderNode</a> </td></tr>
+<tr id="row_2_1_31_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1auto__scheduler_1_1LocalBuilderNode.html" target="_self">LocalBuilderNode</a></td><td class="desc"><a class="el" href="classtvm_1_1auto__scheduler_1_1LocalBuilder.html" title="Managed reference to LocalBuilderNode. ">LocalBuilder</a> use local CPU cores to build programs in parallel < [...]
+<tr id="row_2_1_32_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1auto__scheduler_1_1LocalRunner.html" target="_self">LocalRunner</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1LocalRunnerNode.html" title="LocalRunner that uses local CPU/GPU to measure the time cost of programs. ">LocalRunnerNode</a> [...]
+<tr id="row_2_1_33_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1auto__scheduler_1_1LocalRunnerNode.html" target="_self">LocalRunnerNode</a></td><td class="desc"><a class="el" href="classtvm_1_1auto__scheduler_1_1LocalRunner.html" title="Managed reference to LocalRunnerNode. ">LocalRunner</a> that uses local CPU/GPU to measure the time cost of prog [...]
+<tr id="row_2_1_34_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1auto__scheduler_1_1MeasureCallback.html" target="_self">MeasureCallback</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1MeasureCallbackNode.html" title="Bass class of measurement callbacks. ">MeasureCallbackNode</a> </td></tr>
+<tr id="row_2_1_35_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1auto__scheduler_1_1MeasureCallbackNode.html" target="_self">MeasureCallbackNode</a></td><td class="desc">Bass class of measurement callbacks </td></tr>
+<tr id="row_2_1_36_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1auto__scheduler_1_1MeasureInput.html" target="_self">MeasureInput</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1MeasureInputNode.html" title="Store the input of a measurement. ">MeasureInputNode</a> </td></tr>
+<tr id="row_2_1_37_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1auto__scheduler_1_1MeasureInputNode.html" target="_self">MeasureInputNode</a></td><td class="desc">Store the input of a measurement </td></tr>
+<tr id="row_2_1_38_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1auto__scheduler_1_1MeasureResult.html" target="_self">MeasureResult</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1MeasureResultNode.html" title="Store the results of a measurement. ">MeasureResultNode</a> </td></tr>
+<tr id="row_2_1_39_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1auto__scheduler_1_1MeasureResultNode.html" target="_self">MeasureResultNode</a></td><td class="desc">Store the results of a measurement </td></tr>
+<tr id="row_2_1_40_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1auto__scheduler_1_1ProgramBuilder.html" target="_self">ProgramBuilder</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1ProgramBuilderNode.html" title="ProgramBuilder that builds the programs. ">ProgramBuilderNode</a> </td></tr>
+<tr id="row_2_1_41_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1auto__scheduler_1_1ProgramBuilderNode.html" target="_self">ProgramBuilderNode</a></td><td class="desc"><a class="el" href="classtvm_1_1auto__scheduler_1_1ProgramBuilder.html" title="Managed reference to ProgramBuilderNode. ">ProgramBuilder</a> that builds the programs </td></tr>
+<tr id="row_2_1_42_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1auto__scheduler_1_1ProgramMeasurer.html" target="_self">ProgramMeasurer</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1ProgramMeasurerNode.html" title="Measurer that measures the time costs of tvm programs This class combines ProgramBu [...]
+<tr id="row_2_1_43_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1auto__scheduler_1_1ProgramMeasurerNode.html" target="_self">ProgramMeasurerNode</a></td><td class="desc">Measurer that measures the time costs of tvm programs This class combines <a class="el" href="classtvm_1_1auto__scheduler_1_1ProgramBuilder.html" title="Managed reference to Progra [...]
+<tr id="row_2_1_44_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1auto__scheduler_1_1ProgramRunner.html" target="_self">ProgramRunner</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1ProgramRunnerNode.html" title="ProgramRunner that runs the built programs and measure the time cost. ">ProgramRunnerNode [...]
+<tr id="row_2_1_45_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1auto__scheduler_1_1ProgramRunnerNode.html" target="_self">ProgramRunnerNode</a></td><td class="desc"><a class="el" href="classtvm_1_1auto__scheduler_1_1ProgramRunner.html" title="Managed reference to ProgramRunnerNode. ">ProgramRunner</a> that runs the built programs and measure the t [...]
+<tr id="row_2_1_46_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1auto__scheduler_1_1RecordReader.html" target="_self">RecordReader</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1RecordReaderNode.html" title="Log reader to load step logs from a file. ">RecordReaderNode</a> </td></tr>
+<tr id="row_2_1_47_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1auto__scheduler_1_1RecordReaderNode.html" target="_self">RecordReaderNode</a></td><td class="desc">Log reader to load step logs from a file </td></tr>
+<tr id="row_2_1_48_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1auto__scheduler_1_1RecordToFile.html" target="_self">RecordToFile</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1RecordToFileNode.html" title="Callback for logging the input and results of measurements to file. ">RecordToFileNode</a> < [...]
+<tr id="row_2_1_49_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1auto__scheduler_1_1RecordToFileNode.html" target="_self">RecordToFileNode</a></td><td class="desc">Callback for logging the input and results of measurements to file </td></tr>
+<tr id="row_2_1_50_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1auto__scheduler_1_1ReorderStep.html" target="_self">ReorderStep</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1ReorderStepNode.html" title="Reorder step that corresponds to te::Stage::reorder. ">ReorderStepNode</a> </td></tr>
+<tr id="row_2_1_51_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1auto__scheduler_1_1ReorderStepNode.html" target="_self">ReorderStepNode</a></td><td class="desc">Reorder step that corresponds to <a class="el" href="classtvm_1_1te_1_1Stage.html#ad96cd240a92df9cafae89cdf2a7e302e" title="Reorder the iteration. ">te::Stage::reorder</a> </td></tr>
+<tr id="row_2_1_52_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1auto__scheduler_1_1RPCRunner.html" target="_self">RPCRunner</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1RPCRunnerNode.html" title="RPCRunner that uses RPC call to measures the time cost of programs on remote devices. Or sometime we  [...]
+<tr id="row_2_1_53_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1auto__scheduler_1_1RPCRunnerNode.html" target="_self">RPCRunnerNode</a></td><td class="desc"><a class="el" href="classtvm_1_1auto__scheduler_1_1RPCRunner.html" title="Managed reference to RPCRunnerNode. ">RPCRunner</a> that uses RPC call to measures the time cost of programs on remote [...]
+<tr id="row_2_1_54_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1auto__scheduler_1_1SearchCallback.html" target="_self">SearchCallback</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1SearchCallbackNode.html" title="Callback function to be called by the search process. This interface allows to do extr [...]
+<tr id="row_2_1_55_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1auto__scheduler_1_1SearchCallbackNode.html" target="_self">SearchCallbackNode</a></td><td class="desc">Callback function to be called by the search process. This interface allows to do extra initializations before schedule search or extra check during/after the schedule search </td></tr>
+<tr id="row_2_1_56_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1auto__scheduler_1_1SearchPolicy.html" target="_self">SearchPolicy</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1SearchPolicyNode.html" title="The base class of search policies. ">SearchPolicyNode</a> </td></tr>
+<tr id="row_2_1_57_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1auto__scheduler_1_1SearchPolicyNode.html" target="_self">SearchPolicyNode</a></td><td class="desc">The base class of search policies </td></tr>
+<tr id="row_2_1_58_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1auto__scheduler_1_1SearchTask.html" target="_self">SearchTask</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1SearchTaskNode.html" title="The computation information and hardware parameters for a specific schedule search task...">Search [...]
+<tr id="row_2_1_59_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1auto__scheduler_1_1SearchTaskNode.html" target="_self">SearchTaskNode</a></td><td class="desc">The computation information and hardware parameters for a specific schedule search task </td></tr>
+<tr id="row_2_1_60_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1auto__scheduler_1_1SplitStep.html" target="_self">SplitStep</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1SplitStepNode.html" title="Split step that corresponds to te::Stage::split with additional support of multiple-level of factors. [...]
+<tr id="row_2_1_61_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1auto__scheduler_1_1SplitStepNode.html" target="_self">SplitStepNode</a></td><td class="desc">Split step that corresponds to <a class="el" href="classtvm_1_1te_1_1Stage.html#a5a7cd562be59b68a187ad97085a3425d" title="Split the parent by factor, generate. ">te::Stage::split</a> with addi [...]
+<tr id="row_2_1_62_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1auto__scheduler_1_1Stage.html" target="_self">Stage</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1StageNode.html" title="A op stage in the compute declaration. Similar to te::Stage in include/tvm/te/schedule.h. ">StageNode</a> </td></tr>
+<tr id="row_2_1_63_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1auto__scheduler_1_1StageAttributes.html" target="_self">StageAttributes</a></td><td class="desc">Stage-level attributes </td></tr>
+<tr id="row_2_1_64_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1auto__scheduler_1_1StageNode.html" target="_self">StageNode</a></td><td class="desc">A op stage in the compute declaration. Similar to <a class="el" href="classtvm_1_1te_1_1Stage.html" title="Stage, contains scheduling for a stage of computation. ">te::Stage</a> in <code><a class="el" [...]
+<tr id="row_2_1_65_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1auto__scheduler_1_1State.html" target="_self">State</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1StateNode.html" title="A state in the search process. It consists of the current loop structure and a list of transformation...">StateNo [...]
+<tr id="row_2_1_66_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1auto__scheduler_1_1StateNode.html" target="_self">StateNode</a></td><td class="desc">A state in the search process. It consists of the current loop structure and a list of transformation steps used to construct it. Each <a class="el" href="classtvm_1_1auto__scheduler_1_1State.html" ti [...]
+<tr id="row_2_1_67_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1auto__scheduler_1_1Step.html" target="_self">Step</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1StepNode.html" title="The base class of transformation steps. Each step has its corresponding tvm.te schedule primitives...">StepNode</a>  [...]
+<tr id="row_2_1_68_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1auto__scheduler_1_1StepNode.html" target="_self">StepNode</a></td><td class="desc">The base class of transformation steps. Each step has its corresponding <a class="el" href="namespacetvm_1_1te.html" title="Tensor expression language DSL. ">tvm.te</a> schedule primitives </td></tr>
+<tr id="row_2_1_69_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1auto__scheduler_1_1TuningOptions.html" target="_self">TuningOptions</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1TuningOptionsNode.html" title="Tuning and measurement options. ">TuningOptionsNode</a> </td></tr>
+<tr id="row_2_1_70_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1auto__scheduler_1_1TuningOptionsNode.html" target="_self">TuningOptionsNode</a></td><td class="desc">Tuning and measurement options </td></tr>
+<tr id="row_2_2_" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_2_2_" class="arrow" onclick="toggleFolder('2_2_')">&#9658;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacetvm_1_1detail.html" target="_self">detail</a></td><td class="desc"></td></tr>
+<tr id="row_2_2_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1detail_1_1AttrDocEntry.html" target="_self">AttrDocEntry</a></td><td class="desc"></td></tr>
+<tr id="row_2_2_1_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1detail_1_1AttrDocVisitor.html" target="_self">AttrDocVisitor</a></td><td class="desc"></td></tr>
+<tr id="row_2_2_2_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1detail_1_1AttrExistVisitor.html" target="_self">AttrExistVisitor</a></td><td class="desc"></td></tr>
+<tr id="row_2_2_3_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1detail_1_1AttrInitEntry.html" target="_self">AttrInitEntry</a></td><td class="desc"></td></tr>
+<tr id="row_2_2_4_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1detail_1_1AttrInitVisitor.html" target="_self">AttrInitVisitor</a></td><td class="desc"></td></tr>
+<tr id="row_2_2_5_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1detail_1_1AttrNonDefaultVisitor.html" target="_self">AttrNonDefaultVisitor</a></td><td class="desc"></td></tr>
+<tr id="row_2_2_6_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1detail_1_1AttrNopEntry.html" target="_self">AttrNopEntry</a></td><td class="desc"></td></tr>
+<tr id="row_2_2_7_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1detail_1_1AttrNormalVisitor.html" target="_self">AttrNormalVisitor</a></td><td class="desc"></td></tr>
+<tr id="row_2_2_8_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1detail_1_1AttrsSEqualVisitor.html" target="_self">AttrsSEqualVisitor</a></td><td class="desc"></td></tr>
+<tr id="row_2_2_9_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1detail_1_1AttrsSHashVisitor.html" target="_self">AttrsSHashVisitor</a></td><td class="desc"></td></tr>
+<tr id="row_2_2_10_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1detail_1_1AttrTriggerNonDefaultEntry.html" target="_self">AttrTriggerNonDefaultEntry</a></td><td class="desc"></td></tr>
+<tr id="row_2_2_11_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1detail_1_1ImplSEqualReduce.html" target="_self">ImplSEqualReduce</a></td><td class="desc"></td></tr>
+<tr id="row_2_2_12_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1detail_1_1ImplSEqualReduce_3_01T_00_01true_01_4.html" target="_self">ImplSEqualReduce&lt; T, true &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_2_2_13_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1detail_1_1ImplSHashReduce.html" target="_self">ImplSHashReduce</a></td><td class="desc"></td></tr>
+<tr id="row_2_2_14_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1detail_1_1ImplSHashReduce_3_01T_00_01true_01_4.html" target="_self">ImplSHashReduce&lt; T, true &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_2_2_15_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1detail_1_1ImplVisitAttrs.html" target="_self">ImplVisitAttrs</a></td><td class="desc"></td></tr>
+<tr id="row_2_2_16_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1detail_1_1ImplVisitAttrs_3_01T_00_01true_01_4.html" target="_self">ImplVisitAttrs&lt; T, true &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_2_2_17_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1detail_1_1is__specialized.html" target="_self">is_specialized</a></td><td class="desc"></td></tr>
+<tr id="row_2_2_18_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1detail_1_1is__specialized_3_01Container_3_01Args_8_8_8_01_4_00_01Container_01_4.html" target="_self">is_specialized&lt; Container&lt; Args... &gt;, Container &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_2_2_19_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1detail_1_1ReflectionTrait.html" target="_self">ReflectionTrait</a></td><td class="desc"></td></tr>
+<tr id="row_2_2_20_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1detail_1_1SelectSEqualReduce.html" target="_self">SelectSEqualReduce</a></td><td class="desc"></td></tr>
+<tr id="row_2_2_21_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1detail_1_1SelectSEqualReduce_3_01T_00_01TraitName_00_01false_01_4.html" target="_self">SelectSEqualReduce&lt; T, TraitName, false &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_2_2_22_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1detail_1_1SelectSHashReduce.html" target="_self">SelectSHashReduce</a></td><td class="desc"></td></tr>
+<tr id="row_2_2_23_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1detail_1_1SelectSHashReduce_3_01T_00_01TraitName_00_01false_01_4.html" target="_self">SelectSHashReduce&lt; T, TraitName, false &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_2_2_24_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1detail_1_1SelectVisitAttrs.html" target="_self">SelectVisitAttrs</a></td><td class="desc"></td></tr>
+<tr id="row_2_2_25_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1detail_1_1SelectVisitAttrs_3_01T_00_01TraitName_00_01false_01_4.html" target="_self">SelectVisitAttrs&lt; T, TraitName, false &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_2_2_26_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1detail_1_1TypeName.html" target="_self">TypeName</a></td><td class="desc">Helper struct to get the type name known to tvm </td></tr>
+<tr id="row_2_2_27_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1detail_1_1TypeName_3_01bool_01_4.html" target="_self">TypeName&lt; bool &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_2_2_28_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1detail_1_1TypeName_3_01DataType_01_4.html" target="_self">TypeName&lt; DataType &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_2_2_29_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1detail_1_1TypeName_3_01double_01_4.html" target="_self">TypeName&lt; double &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_2_2_30_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1detail_1_1TypeName_3_01int_01_4.html" target="_self">TypeName&lt; int &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_2_2_31_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1detail_1_1TypeName_3_01int64__t_01_4.html" target="_self">TypeName&lt; int64_t &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_2_2_32_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1detail_1_1TypeName_3_01uint64__t_01_4.html" target="_self">TypeName&lt; uint64_t &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_2_2_33_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1detail_1_1TypeName_3_01void_01_5_01_4.html" target="_self">TypeName&lt; void * &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_2_2_34_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1detail_1_1ValueTypeInfoMaker.html" target="_self">ValueTypeInfoMaker</a></td><td class="desc"></td></tr>
+<tr id="row_2_3_" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_2_3_" class="arrow" onclick="toggleFolder('2_3_')">&#9658;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacetvm_1_1relay.html" target="_self">relay</a></td><td class="desc">Relay: a high level functional IR for TVM </td></tr>
+<tr id="row_2_3_0_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_2_3_0_" class="arrow" onclick="toggleFolder('2_3_0_')">&#9658;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacetvm_1_1relay_1_1qnn.html" target="_self">qnn</a></td><td class="desc"></td></tr>
+<tr id="row_2_3_0_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1qnn_1_1DequantizeAttrs.html" target="_self">DequantizeAttrs</a></td><td class="desc">Attribute for dequantize operator </td></tr>
+<tr id="row_2_3_0_1_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1qnn_1_1QuantizeAttrs.html" target="_self">QuantizeAttrs</a></td><td class="desc">Attribute for quantize operator </td></tr>
+<tr id="row_2_3_0_2_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1qnn_1_1RequantizeAttrs.html" target="_self">RequantizeAttrs</a></td><td class="desc">Attribute for requantize operator </td></tr>
+<tr id="row_2_3_1_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1AdaptivePool2DAttrs.html" target="_self">AdaptivePool2DAttrs</a></td><td class="desc">Attributes for adaptive pool operator </td></tr>
+<tr id="row_2_3_2_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1AdaptivePool3DAttrs.html" target="_self">AdaptivePool3DAttrs</a></td><td class="desc"></td></tr>
+<tr id="row_2_3_3_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1AffineGridAttrs.html" target="_self">AffineGridAttrs</a></td><td class="desc">Attributes used in image affine_grid operator </td></tr>
+<tr id="row_2_3_4_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1AllocStorageAttrs.html" target="_self">AllocStorageAttrs</a></td><td class="desc">Options for allocating storage </td></tr>
+<tr id="row_2_3_5_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1AllocTensorAttrs.html" target="_self">AllocTensorAttrs</a></td><td class="desc">Options for allocating tensors </td></tr>
+<tr id="row_2_3_6_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1AltPattern.html" target="_self">AltPattern</a></td><td class="desc">A pattern which matches either of two patterns </td></tr>
+<tr id="row_2_3_7_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1AltPatternNode.html" target="_self">AltPatternNode</a></td><td class="desc"><a class="el" href="classtvm_1_1relay_1_1Pattern.html" title="Pattern is the base type for an ADT match pattern in Relay. ">Pattern</a> for Alternate Expressions </td></tr>
+<tr id="row_2_3_8_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ArangeAttrs.html" target="_self">ArangeAttrs</a></td><td class="desc">Attributes used in arange operators </td></tr>
+<tr id="row_2_3_9_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ArgsortAttrs.html" target="_self">ArgsortAttrs</a></td><td class="desc">Attributes used in argsort operators </td></tr>
+<tr id="row_2_3_10_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1AttrPattern.html" target="_self">AttrPattern</a></td><td class="desc">A pattern which matches attributes in another pattern </td></tr>
+<tr id="row_2_3_11_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1AttrPatternNode.html" target="_self">AttrPatternNode</a></td><td class="desc"><a class="el" href="classtvm_1_1relay_1_1Pattern.html" title="Pattern is the base type for an ADT match pattern in Relay. ">Pattern</a> for Attributes </td></tr>
+<tr id="row_2_3_12_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1AvgPool1DAttrs.html" target="_self">AvgPool1DAttrs</a></td><td class="desc">Attributes for 1D avg pool operator </td></tr>
+<tr id="row_2_3_13_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1AvgPool2DAttrs.html" target="_self">AvgPool2DAttrs</a></td><td class="desc">Attributes for avg pool operator </td></tr>
+<tr id="row_2_3_14_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1AvgPool3DAttrs.html" target="_self">AvgPool3DAttrs</a></td><td class="desc">Attributes for 3D avg pool operator </td></tr>
+<tr id="row_2_3_15_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1BatchNormAttrs.html" target="_self">BatchNormAttrs</a></td><td class="desc">Attributes used in batch_norm operator </td></tr>
+<tr id="row_2_3_16_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1BiasAddAttrs.html" target="_self">BiasAddAttrs</a></td><td class="desc">Add a 1D Tensor to an axis of a data </td></tr>
+<tr id="row_2_3_17_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1BinaryConv2DAttrs.html" target="_self">BinaryConv2DAttrs</a></td><td class="desc">Attribues used in bitserial convolution operators </td></tr>
+<tr id="row_2_3_18_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1BinaryDenseAttrs.html" target="_self">BinaryDenseAttrs</a></td><td class="desc"></td></tr>
+<tr id="row_2_3_19_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1BitPackAttrs.html" target="_self">BitPackAttrs</a></td><td class="desc">Attributes used in bitpack operators </td></tr>
+<tr id="row_2_3_20_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1Call.html" target="_self">Call</a></td><td class="desc"></td></tr>
+<tr id="row_2_3_21_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1CallNode.html" target="_self">CallNode</a></td><td class="desc"><a class="el" href="classtvm_1_1relay_1_1Call.html">Call</a> container </td></tr>
+<tr id="row_2_3_22_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1CallPattern.html" target="_self">CallPattern</a></td><td class="desc"></td></tr>
+<tr id="row_2_3_23_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1CallPatternNode.html" target="_self">CallPatternNode</a></td><td class="desc"><a class="el" href="classtvm_1_1relay_1_1CallPattern.html">CallPattern</a> container </td></tr>
+<tr id="row_2_3_24_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1CastAttrs.html" target="_self">CastAttrs</a></td><td class="desc">Data type cast </td></tr>
+<tr id="row_2_3_25_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1CastHintAttrs.html" target="_self">CastHintAttrs</a></td><td class="desc">Annotate an expression to be cast into specific data type </td></tr>
+<tr id="row_2_3_26_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1Clause.html" target="_self">Clause</a></td><td class="desc"></td></tr>
+<tr id="row_2_3_27_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1ClauseNode.html" target="_self">ClauseNode</a></td><td class="desc"><a class="el" href="classtvm_1_1relay_1_1Clause.html">Clause</a> container node </td></tr>
+<tr id="row_2_3_28_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ClipAttrs.html" target="_self">ClipAttrs</a></td><td class="desc">Attributes for Clip operator </td></tr>
+<tr id="row_2_3_29_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1CompilerAttrs.html" target="_self">CompilerAttrs</a></td><td class="desc">Options for the operators used to annotate a compiler </td></tr>
+<tr id="row_2_3_30_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ConcatenateAttrs.html" target="_self">ConcatenateAttrs</a></td><td class="desc">Attributes used in concatenate operators </td></tr>
+<tr id="row_2_3_31_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1Constant.html" target="_self">Constant</a></td><td class="desc"></td></tr>
+<tr id="row_2_3_32_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1ConstantNode.html" target="_self">ConstantNode</a></td><td class="desc"><a class="el" href="classtvm_1_1relay_1_1Constant.html">Constant</a> tensor type </td></tr>
+<tr id="row_2_3_33_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1ConstantPattern.html" target="_self">ConstantPattern</a></td><td class="desc"></td></tr>
+<tr id="row_2_3_34_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1ConstantPatternNode.html" target="_self">ConstantPatternNode</a></td><td class="desc">Container for <a class="el" href="classtvm_1_1relay_1_1Constant.html">Constant</a> </td></tr>
+<tr id="row_2_3_35_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1ConstructorValue.html" target="_self">ConstructorValue</a></td><td class="desc"></td></tr>
+<tr id="row_2_3_36_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ConstructorValueObj.html" target="_self">ConstructorValueObj</a></td><td class="desc"></td></tr>
+<tr id="row_2_3_37_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1Conv1DAttrs.html" target="_self">Conv1DAttrs</a></td><td class="desc">Attributes used in 1D convolution operators </td></tr>
+<tr id="row_2_3_38_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1Conv1DTransposeAttrs.html" target="_self">Conv1DTransposeAttrs</a></td><td class="desc">Attributes used in 1D transposed convolution operator </td></tr>
+<tr id="row_2_3_39_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1Conv2DAttrs.html" target="_self">Conv2DAttrs</a></td><td class="desc">Attributes used in convolution operators </td></tr>
+<tr id="row_2_3_40_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1Conv2DTransposeAttrs.html" target="_self">Conv2DTransposeAttrs</a></td><td class="desc">Attributes used in transposed convolution operator </td></tr>
+<tr id="row_2_3_41_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1Conv2DWinogradAttrs.html" target="_self">Conv2DWinogradAttrs</a></td><td class="desc">Attributes used in convolution operators with winograd algorithm </td></tr>
+<tr id="row_2_3_42_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1Conv2DWinogradNNPACKWeightTransformAttrs.html" target="_self">Conv2DWinogradNNPACKWeightTransformAttrs</a></td><td class="desc">Attributes used in winograd weight transformation operators </td></tr>
+<tr id="row_2_3_43_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1Conv3DAttrs.html" target="_self">Conv3DAttrs</a></td><td class="desc">Attributes used in convolution operators </td></tr>
+<tr id="row_2_3_44_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1Conv3DTransposeAttrs.html" target="_self">Conv3DTransposeAttrs</a></td><td class="desc">Attributes used in transposed convolution operator </td></tr>
+<tr id="row_2_3_45_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1Conv3DWinogradAttrs.html" target="_self">Conv3DWinogradAttrs</a></td><td class="desc">Attributes used in 3d winograd convolution operators </td></tr>
+<tr id="row_2_3_46_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ConvGemmWeightTransformAttrs.html" target="_self">ConvGemmWeightTransformAttrs</a></td><td class="desc">Attributes used in gemm weight transformation operators </td></tr>
+<tr id="row_2_3_47_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ConvWinogradWeightTransformAttrs.html" target="_self">ConvWinogradWeightTransformAttrs</a></td><td class="desc">Attributes used in winograd weight transformation operators </td></tr>
+<tr id="row_2_3_48_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1CorrelationAttrs.html" target="_self">CorrelationAttrs</a></td><td class="desc">Attributes used in correlation operators </td></tr>
+<tr id="row_2_3_49_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1CropAndResizeAttrs.html" target="_self">CropAndResizeAttrs</a></td><td class="desc">Attributes used in image crop_and_resize operator </td></tr>
+<tr id="row_2_3_50_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1DataTypePattern.html" target="_self">DataTypePattern</a></td><td class="desc">A pattern which matches a type in another pattern </td></tr>
+<tr id="row_2_3_51_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1DataTypePatternNode.html" target="_self">DataTypePatternNode</a></td><td class="desc"><a class="el" href="classtvm_1_1relay_1_1Pattern.html" title="Pattern is the base type for an ADT match pattern in Relay. ">Pattern</a> for Types </td></tr>
+<tr id="row_2_3_52_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1DebugAttrs.html" target="_self">DebugAttrs</a></td><td class="desc">Options for the debug operators </td></tr>
+<tr id="row_2_3_53_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1DeformableConv2DAttrs.html" target="_self">DeformableConv2DAttrs</a></td><td class="desc">Attributes for DeformableConv2D operator </td></tr>
+<tr id="row_2_3_54_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1DenseAttrs.html" target="_self">DenseAttrs</a></td><td class="desc">Attributes for dense operator </td></tr>
+<tr id="row_2_3_55_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1DeviceCopyAttrs.html" target="_self">DeviceCopyAttrs</a></td><td class="desc">Options for the device copy operators </td></tr>
+<tr id="row_2_3_56_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1DFPattern.html" target="_self">DFPattern</a></td><td class="desc">Managed reference to dataflow patterns </td></tr>
+<tr id="row_2_3_57_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1DFPatternCallback.html" target="_self">DFPatternCallback</a></td><td class="desc">Managed reference to dataflow pattern callbacks </td></tr>
+<tr id="row_2_3_58_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1DFPatternCallbackNode.html" target="_self">DFPatternCallbackNode</a></td><td class="desc">Base type of all dataflow pattern callbacks </td></tr>
+<tr id="row_2_3_59_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1DFPatternFunctor.html" target="_self">DFPatternFunctor</a></td><td class="desc">A dynamical functor that dispatches on in the first <a class="el" href="classtvm_1_1relay_1_1DFPattern.html" title="Managed reference to dataflow patterns. ">DFPattern</a> argument </td></tr>
+<tr id="row_2_3_60_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1DFPatternFunctor_3_01R_07const_01DFPattern_01_6n_00_01Args_8_8_8_08_4.html" target="_self">DFPatternFunctor&lt; R(const DFPattern &amp;n, Args...)&gt;</a></td><td class="desc"></td></tr>
+<tr id="row_2_3_61_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1DFPatternNode.html" target="_self">DFPatternNode</a></td><td class="desc">Base type of all dataflow patterns </td></tr>
+<tr id="row_2_3_62_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1DFPatternVisitor.html" target="_self">DFPatternVisitor</a></td><td class="desc">A simple visitor wrapper around <a class="el" href="classtvm_1_1relay_1_1DFPatternFunctor.html" title="A dynamical functor that dispatches on in the first DFPattern argument. ">DFPatternFunctor</a [...]
+<tr id="row_2_3_63_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1DilateAttrs.html" target="_self">DilateAttrs</a></td><td class="desc">Attributes used in dilate operator </td></tr>
+<tr id="row_2_3_64_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1Dilation2DAttrs.html" target="_self">Dilation2DAttrs</a></td><td class="desc">Attributes used in dilation operators </td></tr>
+<tr id="row_2_3_65_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1DominatorPattern.html" target="_self">DominatorPattern</a></td><td class="desc">A pattern which matches a variable length dominator path </td></tr>
+<tr id="row_2_3_66_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1DominatorPatternNode.html" target="_self">DominatorPatternNode</a></td><td class="desc">Dominated Graph <a class="el" href="classtvm_1_1relay_1_1Pattern.html" title="Pattern is the base type for an ADT match pattern in Relay. ">Pattern</a> <a class="el" href="classtvm_1_1rela [...]
+<tr id="row_2_3_67_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1DropoutAttrs.html" target="_self">DropoutAttrs</a></td><td class="desc">Attributes used in dropout operator </td></tr>
+<tr id="row_2_3_68_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ExpandDimsAttrs.html" target="_self">ExpandDimsAttrs</a></td><td class="desc">Attributes used in expand_dims operators </td></tr>
+<tr id="row_2_3_69_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1ExprFunctor.html" target="_self">ExprFunctor</a></td><td class="desc">A dynamical functor that dispatches on in the first Expr argument. You can use this as a more powerful Visitor, since it allows you to define function signatures of Visit <a class="el" href="classtvm_1_1rel [...]
+<tr id="row_2_3_70_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1ExprFunctor_3_01R_07const_01Expr_01_6n_00_01Args_8_8_8_08_4.html" target="_self">ExprFunctor&lt; R(const Expr &amp;n, Args...)&gt;</a></td><td class="desc"></td></tr>
+<tr id="row_2_3_71_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1ExprMutator.html" target="_self">ExprMutator</a></td><td class="desc">A wrapper around <a class="el" href="classtvm_1_1relay_1_1ExprFunctor.html" title="A dynamical functor that dispatches on in the first Expr argument. You can use this as a more powerfu...">ExprFunctor</a> w [...]
+<tr id="row_2_3_72_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1ExprPattern.html" target="_self">ExprPattern</a></td><td class="desc">A pattern which matches a literal expression </td></tr>
+<tr id="row_2_3_73_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1ExprPatternNode.html" target="_self">ExprPatternNode</a></td><td class="desc"><a class="el" href="classtvm_1_1relay_1_1Pattern.html" title="Pattern is the base type for an ADT match pattern in Relay. ">Pattern</a> for Relay Expression </td></tr>
+<tr id="row_2_3_74_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1ExprRewriter.html" target="_self">ExprRewriter</a></td><td class="desc">A non-iterating Expression Rewriter </td></tr>
+<tr id="row_2_3_75_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1ExprVisitor.html" target="_self">ExprVisitor</a></td><td class="desc">A simple visitor wrapper around <a class="el" href="classtvm_1_1relay_1_1ExprFunctor.html" title="A dynamical functor that dispatches on in the first Expr argument. You can use this as a more powerfu...">Ex [...]
+<tr id="row_2_3_76_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1FeatureSet.html" target="_self">FeatureSet</a></td><td class="desc">A finite set of Feature </td></tr>
+<tr id="row_2_3_77_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1FIFOBufferAttrs.html" target="_self">FIFOBufferAttrs</a></td><td class="desc">Attributes for FIFO buffer operator </td></tr>
+<tr id="row_2_3_78_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1FixedPointMultiplyAttrs.html" target="_self">FixedPointMultiplyAttrs</a></td><td class="desc">Attributes for FixedPointMultiply operator </td></tr>
+<tr id="row_2_3_79_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1Function.html" target="_self">Function</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1relay_1_1FunctionNode.html" title="Relay Function container. ">FunctionNode</a> </td></tr>
+<tr id="row_2_3_80_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1FunctionNode.html" target="_self">FunctionNode</a></td><td class="desc">Relay <a class="el" href="classtvm_1_1relay_1_1Function.html" title="Managed reference to FunctionNode. ">Function</a> container </td></tr>
+<tr id="row_2_3_81_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1GatherAttrs.html" target="_self">GatherAttrs</a></td><td class="desc"></td></tr>
+<tr id="row_2_3_82_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1GetValidCountsAttrs.html" target="_self">GetValidCountsAttrs</a></td><td class="desc">Attributes used in get_valid_counts operator </td></tr>
+<tr id="row_2_3_83_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1GlobalPool2DAttrs.html" target="_self">GlobalPool2DAttrs</a></td><td class="desc">Attributes for global pool operator </td></tr>
+<tr id="row_2_3_84_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1GridSampleAttrs.html" target="_self">GridSampleAttrs</a></td><td class="desc">Attributes used in image grid_sample operator </td></tr>
+<tr id="row_2_3_85_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1GroupNormAttrs.html" target="_self">GroupNormAttrs</a></td><td class="desc">Attributes used in group_norm operator </td></tr>
+<tr id="row_2_3_86_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1Id.html" target="_self">Id</a></td><td class="desc"></td></tr>
+<tr id="row_2_3_87_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1IdNode.html" target="_self">IdNode</a></td><td class="desc">The unique identifier of variables </td></tr>
+<tr id="row_2_3_88_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1If.html" target="_self">If</a></td><td class="desc"></td></tr>
+<tr id="row_2_3_89_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1IfNode.html" target="_self">IfNode</a></td><td class="desc">Container of <a class="el" href="classtvm_1_1relay_1_1If.html">If</a> </td></tr>
+<tr id="row_2_3_90_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1InitOpAttrs.html" target="_self">InitOpAttrs</a></td><td class="desc">Attributes that specify a tensor </td></tr>
+<tr id="row_2_3_91_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1InstanceNormAttrs.html" target="_self">InstanceNormAttrs</a></td><td class="desc">Attributes used in instance_norm operator </td></tr>
+<tr id="row_2_3_92_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1InterpreterClosure.html" target="_self">InterpreterClosure</a></td><td class="desc"></td></tr>
+<tr id="row_2_3_93_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1InterpreterClosureObj.html" target="_self">InterpreterClosureObj</a></td><td class="desc">The container type of Closures used by the interpreter </td></tr>
+<tr id="row_2_3_94_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1L2NormalizeAttrs.html" target="_self">L2NormalizeAttrs</a></td><td class="desc">Attributes for L2Normalize operator </td></tr>
+<tr id="row_2_3_95_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1LayerNormAttrs.html" target="_self">LayerNormAttrs</a></td><td class="desc">Attributes used in layer_norm operator </td></tr>
+<tr id="row_2_3_96_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1LayoutTransformAttrs.html" target="_self">LayoutTransformAttrs</a></td><td class="desc">Attributes for LayoutTransform operator </td></tr>
+<tr id="row_2_3_97_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1LeakyReluAttrs.html" target="_self">LeakyReluAttrs</a></td><td class="desc">Attributes for leaky relu operator </td></tr>
+<tr id="row_2_3_98_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1Let.html" target="_self">Let</a></td><td class="desc"></td></tr>
+<tr id="row_2_3_99_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1LetNode.html" target="_self">LetNode</a></td><td class="desc">A binding of a sub-network </td></tr>
+<tr id="row_2_3_100_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1LRNAttrs.html" target="_self">LRNAttrs</a></td><td class="desc">Attributes for LRN operator </td></tr>
+<tr id="row_2_3_101_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1Match.html" target="_self">Match</a></td><td class="desc"></td></tr>
+<tr id="row_2_3_102_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1MatchNode.html" target="_self">MatchNode</a></td><td class="desc"><a class="el" href="classtvm_1_1relay_1_1Match.html">Match</a> container node </td></tr>
+<tr id="row_2_3_103_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1MaxPool1DAttrs.html" target="_self">MaxPool1DAttrs</a></td><td class="desc">Attributes for 1D max pool operator </td></tr>
+<tr id="row_2_3_104_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1MaxPool2DAttrs.html" target="_self">MaxPool2DAttrs</a></td><td class="desc">Attributes for max pool operator </td></tr>
+<tr id="row_2_3_105_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1MaxPool3DAttrs.html" target="_self">MaxPool3DAttrs</a></td><td class="desc">Attributes for 3D max pool operator </td></tr>
+<tr id="row_2_3_106_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1MeshgridAttrs.html" target="_self">MeshgridAttrs</a></td><td class="desc">Attributes used in meshgrid operators </td></tr>
+<tr id="row_2_3_107_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1MirrorPadAttrs.html" target="_self">MirrorPadAttrs</a></td><td class="desc">Attributes used for the MirrorPadding operator </td></tr>
+<tr id="row_2_3_108_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1MixedModeMutator.html" target="_self">MixedModeMutator</a></td><td class="desc">Non-recursive DFS Graph Traversal for Custom Rewriting Passes </td></tr>
+<tr id="row_2_3_109_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1MixedModeVisitor.html" target="_self">MixedModeVisitor</a></td><td class="desc">A wrapper around <a class="el" href="classtvm_1_1relay_1_1ExprVisitor.html" title="A simple visitor wrapper around ExprFunctor. Recursively visit the content. ">ExprVisitor</a> which traverses th [...]
+<tr id="row_2_3_110_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1MultiBoxPriorAttrs.html" target="_self">MultiBoxPriorAttrs</a></td><td class="desc">Attributes used in multibox_prior operators </td></tr>
+<tr id="row_2_3_111_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1MultiBoxTransformLocAttrs.html" target="_self">MultiBoxTransformLocAttrs</a></td><td class="desc"></td></tr>
+<tr id="row_2_3_112_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1NdarraySizeAttrs.html" target="_self">NdarraySizeAttrs</a></td><td class="desc">Attributes for ndarray_size operator </td></tr>
+<tr id="row_2_3_113_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1NonMaximumSuppressionAttrs.html" target="_self">NonMaximumSuppressionAttrs</a></td><td class="desc">Attributes used in non_maximum_suppression operator </td></tr>
+<tr id="row_2_3_114_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1OnDeviceAttrs.html" target="_self">OnDeviceAttrs</a></td><td class="desc">Options for the device annotation operators </td></tr>
+<tr id="row_2_3_115_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1OneHotAttrs.html" target="_self">OneHotAttrs</a></td><td class="desc">Attributes used in one-hot operator </td></tr>
+<tr id="row_2_3_116_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1OpImplementation.html" target="_self">OpImplementation</a></td><td class="desc">Operator implementation class </td></tr>
+<tr id="row_2_3_117_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1OpImplementationNode.html" target="_self">OpImplementationNode</a></td><td class="desc">Operator implementation that includes compute and schedule function </td></tr>
+<tr id="row_2_3_118_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1OpSpecialization.html" target="_self">OpSpecialization</a></td><td class="desc">Operator specialization class </td></tr>
+<tr id="row_2_3_119_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1OpSpecializationNode.html" target="_self">OpSpecializationNode</a></td><td class="desc">Specialized implementations for operators under certain conditions </td></tr>
+<tr id="row_2_3_120_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1OpStrategy.html" target="_self">OpStrategy</a></td><td class="desc">Operator strategy class </td></tr>
+<tr id="row_2_3_121_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1OpStrategyNode.html" target="_self">OpStrategyNode</a></td><td class="desc">Operator strategy to choose implementation </td></tr>
+<tr id="row_2_3_122_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1PadAttrs.html" target="_self">PadAttrs</a></td><td class="desc">Attributes used for the padding operator </td></tr>
+<tr id="row_2_3_123_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1Pattern.html" target="_self">Pattern</a></td><td class="desc"><a class="el" href="classtvm_1_1relay_1_1Pattern.html" title="Pattern is the base type for an ADT match pattern in Relay. ">Pattern</a> is the base type for an ADT match pattern in Relay </td></tr>
+<tr id="row_2_3_124_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1PatternConstructor.html" target="_self">PatternConstructor</a></td><td class="desc"></td></tr>
+<tr id="row_2_3_125_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1PatternConstructorNode.html" target="_self">PatternConstructorNode</a></td><td class="desc"><a class="el" href="classtvm_1_1relay_1_1PatternVar.html">PatternVar</a> container node </td></tr>
+<tr id="row_2_3_126_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1PatternFunctor.html" target="_self">PatternFunctor</a></td><td class="desc">A dynamical functor on ADT patterns that dispatches on its first argument. You can use this as a more powerful visitor, since it allows you to define the types of further arguments to VisitPattern </ [...]
+<tr id="row_2_3_127_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1PatternFunctor_3_01R_07const_01Pattern_01_6n_00_01Args_8_8_8_08_4.html" target="_self">PatternFunctor&lt; R(const Pattern &amp;n, Args...)&gt;</a></td><td class="desc"></td></tr>
+<tr id="row_2_3_128_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1PatternMutator.html" target="_self">PatternMutator</a></td><td class="desc">A wrapper around <a class="el" href="classtvm_1_1relay_1_1ExprFunctor.html" title="A dynamical functor that dispatches on in the first Expr argument. You can use this as a more powerfu...">ExprFuncto [...]
+<tr id="row_2_3_129_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1PatternNode.html" target="_self">PatternNode</a></td><td class="desc">Base type for declaring relay pattern </td></tr>
+<tr id="row_2_3_130_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1PatternTuple.html" target="_self">PatternTuple</a></td><td class="desc"></td></tr>
+<tr id="row_2_3_131_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1PatternTupleNode.html" target="_self">PatternTupleNode</a></td><td class="desc"><a class="el" href="classtvm_1_1relay_1_1PatternVar.html">PatternVar</a> container node </td></tr>
+<tr id="row_2_3_132_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1PatternVar.html" target="_self">PatternVar</a></td><td class="desc"></td></tr>
+<tr id="row_2_3_133_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1PatternVarNode.html" target="_self">PatternVarNode</a></td><td class="desc"><a class="el" href="classtvm_1_1relay_1_1PatternVar.html">PatternVar</a> container node </td></tr>
+<tr id="row_2_3_134_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1PatternVisitor.html" target="_self">PatternVisitor</a></td><td class="desc">A simple visitor wrapper around <a class="el" href="classtvm_1_1relay_1_1PatternFunctor.html" title="A dynamical functor on ADT patterns that dispatches on its first argument. You can use this as a m [...]
+<tr id="row_2_3_135_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1PatternWildcard.html" target="_self">PatternWildcard</a></td><td class="desc"></td></tr>
+<tr id="row_2_3_136_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1PatternWildcardNode.html" target="_self">PatternWildcardNode</a></td><td class="desc"><a class="el" href="classtvm_1_1relay_1_1PatternWildcard.html">PatternWildcard</a> container node </td></tr>
+<tr id="row_2_3_137_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1PReluAttrs.html" target="_self">PReluAttrs</a></td><td class="desc">Attributes for prelu operator </td></tr>
+<tr id="row_2_3_138_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ProposalAttrs.html" target="_self">ProposalAttrs</a></td><td class="desc">Attributes used in proposal operators </td></tr>
+<tr id="row_2_3_139_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1RecClosure.html" target="_self">RecClosure</a></td><td class="desc"></td></tr>
+<tr id="row_2_3_140_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1RecClosureObj.html" target="_self">RecClosureObj</a></td><td class="desc">The container type of <a class="el" href="classtvm_1_1relay_1_1RecClosure.html">RecClosure</a> </td></tr>
+<tr id="row_2_3_141_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ReduceAttrs.html" target="_self">ReduceAttrs</a></td><td class="desc">Attributes for Reduce operators </td></tr>
+<tr id="row_2_3_142_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1RefCreate.html" target="_self">RefCreate</a></td><td class="desc"></td></tr>
+<tr id="row_2_3_143_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1RefCreateNode.html" target="_self">RefCreateNode</a></td><td class="desc"></td></tr>
+<tr id="row_2_3_144_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1RefRead.html" target="_self">RefRead</a></td><td class="desc"></td></tr>
+<tr id="row_2_3_145_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1RefReadNode.html" target="_self">RefReadNode</a></td><td class="desc"></td></tr>
+<tr id="row_2_3_146_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1RefValue.html" target="_self">RefValue</a></td><td class="desc"></td></tr>
+<tr id="row_2_3_147_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1RefValueObj.html" target="_self">RefValueObj</a></td><td class="desc"></td></tr>
+<tr id="row_2_3_148_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1RefWrite.html" target="_self">RefWrite</a></td><td class="desc"></td></tr>
+<tr id="row_2_3_149_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1RefWriteNode.html" target="_self">RefWriteNode</a></td><td class="desc"></td></tr>
+<tr id="row_2_3_150_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1RelayNode.html" target="_self">RelayNode</a></td><td class="desc">This is the base node container of all relay structures </td></tr>
+<tr id="row_2_3_151_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1RepeatAttrs.html" target="_self">RepeatAttrs</a></td><td class="desc">Attributes used in repeat operators </td></tr>
+<tr id="row_2_3_152_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ReshapeAttrs.html" target="_self">ReshapeAttrs</a></td><td class="desc">Attributes used in reshape operators </td></tr>
+<tr id="row_2_3_153_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ReshapeTensorAttrs.html" target="_self">ReshapeTensorAttrs</a></td><td class="desc">Attributes for VM reshape_tensor operator </td></tr>
+<tr id="row_2_3_154_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1Resize3dAttrs.html" target="_self">Resize3dAttrs</a></td><td class="desc">Attributes used in image resize3d operator </td></tr>
+<tr id="row_2_3_155_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ResizeAttrs.html" target="_self">ResizeAttrs</a></td><td class="desc">Attributes used in image resize operator </td></tr>
+<tr id="row_2_3_156_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ReverseAttrs.html" target="_self">ReverseAttrs</a></td><td class="desc">Attributes used in reverse operators </td></tr>
+<tr id="row_2_3_157_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ReverseSequenceAttrs.html" target="_self">ReverseSequenceAttrs</a></td><td class="desc">Attributes used in reverse_sequence operators </td></tr>
+<tr id="row_2_3_158_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ROIAlignAttrs.html" target="_self">ROIAlignAttrs</a></td><td class="desc">Attributes used in roi_align operators </td></tr>
+<tr id="row_2_3_159_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ROIPoolAttrs.html" target="_self">ROIPoolAttrs</a></td><td class="desc">Attributes used in roi_pool operators </td></tr>
+<tr id="row_2_3_160_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ScatterAddAttrs.html" target="_self">ScatterAddAttrs</a></td><td class="desc"></td></tr>
+<tr id="row_2_3_161_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ScatterAttrs.html" target="_self">ScatterAttrs</a></td><td class="desc"></td></tr>
+<tr id="row_2_3_162_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1SequenceMaskAttrs.html" target="_self">SequenceMaskAttrs</a></td><td class="desc"></td></tr>
+<tr id="row_2_3_163_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ShapeFuncAttrs.html" target="_self">ShapeFuncAttrs</a></td><td class="desc">Options for the shape function operator </td></tr>
+<tr id="row_2_3_164_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ShapeOfAttrs.html" target="_self">ShapeOfAttrs</a></td><td class="desc">Attributes for ShapeOf operator </td></tr>
+<tr id="row_2_3_165_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1ShapePattern.html" target="_self">ShapePattern</a></td><td class="desc">A pattern which matches a type in another pattern </td></tr>
+<tr id="row_2_3_166_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1ShapePatternNode.html" target="_self">ShapePatternNode</a></td><td class="desc"><a class="el" href="classtvm_1_1relay_1_1Pattern.html" title="Pattern is the base type for an ADT match pattern in Relay. ">Pattern</a> for Shapes </td></tr>
+<tr id="row_2_3_167_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1SliceLikeAttrs.html" target="_self">SliceLikeAttrs</a></td><td class="desc"></td></tr>
+<tr id="row_2_3_168_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1SoftmaxAttrs.html" target="_self">SoftmaxAttrs</a></td><td class="desc">Attributes used in softmax operators </td></tr>
+<tr id="row_2_3_169_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1SparseDenseAttrs.html" target="_self">SparseDenseAttrs</a></td><td class="desc">Attributes for sparse_dense operator </td></tr>
+<tr id="row_2_3_170_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1SparseToDenseAttrs.html" target="_self">SparseToDenseAttrs</a></td><td class="desc">Attributes used in sparse_to_dense operator </td></tr>
+<tr id="row_2_3_171_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1SparseTransposeAttrs.html" target="_self">SparseTransposeAttrs</a></td><td class="desc">Attributes for sparse_transpose operator </td></tr>
+<tr id="row_2_3_172_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1SplitAttrs.html" target="_self">SplitAttrs</a></td><td class="desc"></td></tr>
+<tr id="row_2_3_173_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1SqueezeAttrs.html" target="_self">SqueezeAttrs</a></td><td class="desc">Attributes used in squeeze operators </td></tr>
+<tr id="row_2_3_174_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1StackAttrs.html" target="_self">StackAttrs</a></td><td class="desc">Attributes used in stack operators </td></tr>
+<tr id="row_2_3_175_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1StridedSliceAttrs.html" target="_self">StridedSliceAttrs</a></td><td class="desc">Attributes for StridedSlice operator </td></tr>
+<tr id="row_2_3_176_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1SubPixelAttrs.html" target="_self">SubPixelAttrs</a></td><td class="desc">Attributes used in subpixel operators </td></tr>
+<tr id="row_2_3_177_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1TakeAttrs.html" target="_self">TakeAttrs</a></td><td class="desc"></td></tr>
+<tr id="row_2_3_178_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1TempExpr.html" target="_self">TempExpr</a></td><td class="desc"></td></tr>
+<tr id="row_2_3_179_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1TempExprNode.html" target="_self">TempExprNode</a></td><td class="desc">Base class of the temporary expression </td></tr>
+<tr id="row_2_3_180_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1TileAttrs.html" target="_self">TileAttrs</a></td><td class="desc">Attributes used in tile operators </td></tr>
+<tr id="row_2_3_181_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1TopKAttrs.html" target="_self">TopKAttrs</a></td><td class="desc"></td></tr>
+<tr id="row_2_3_182_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1TransposeAttrs.html" target="_self">TransposeAttrs</a></td><td class="desc">Attributes used in transpose operators </td></tr>
+<tr id="row_2_3_183_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1Tuple.html" target="_self">Tuple</a></td><td class="desc"></td></tr>
+<tr id="row_2_3_184_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1TupleGetItem.html" target="_self">TupleGetItem</a></td><td class="desc"></td></tr>
+<tr id="row_2_3_185_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1TupleGetItemNode.html" target="_self">TupleGetItemNode</a></td><td class="desc"></td></tr>
+<tr id="row_2_3_186_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1TupleGetItemPattern.html" target="_self">TupleGetItemPattern</a></td><td class="desc"></td></tr>
+<tr id="row_2_3_187_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1TupleGetItemPatternNode.html" target="_self">TupleGetItemPatternNode</a></td><td class="desc"></td></tr>
+<tr id="row_2_3_188_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1TupleNode.html" target="_self">TupleNode</a></td><td class="desc"><a class="el" href="classtvm_1_1relay_1_1Tuple.html">Tuple</a> container </td></tr>
+<tr id="row_2_3_189_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1TuplePattern.html" target="_self">TuplePattern</a></td><td class="desc"></td></tr>
+<tr id="row_2_3_190_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1TuplePatternNode.html" target="_self">TuplePatternNode</a></td><td class="desc"><a class="el" href="classtvm_1_1relay_1_1Tuple.html">Tuple</a> container </td></tr>
+<tr id="row_2_3_191_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1TypePattern.html" target="_self">TypePattern</a></td><td class="desc">A pattern which matches a type in another pattern </td></tr>
+<tr id="row_2_3_192_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1TypePatternNode.html" target="_self">TypePatternNode</a></td><td class="desc"><a class="el" href="classtvm_1_1relay_1_1Pattern.html" title="Pattern is the base type for an ADT match pattern in Relay. ">Pattern</a> for Types </td></tr>
+<tr id="row_2_3_193_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1UpSampling3DAttrs.html" target="_self">UpSampling3DAttrs</a></td><td class="desc">Attributes for upsampling3d operator </td></tr>
+<tr id="row_2_3_194_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1UpSamplingAttrs.html" target="_self">UpSamplingAttrs</a></td><td class="desc">Attributes for upsampling operator </td></tr>
+<tr id="row_2_3_195_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1Var.html" target="_self">Var</a></td><td class="desc"></td></tr>
+<tr id="row_2_3_196_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1VarNode.html" target="_self">VarNode</a></td><td class="desc">Container for <a class="el" href="classtvm_1_1relay_1_1Var.html">Var</a> </td></tr>
+<tr id="row_2_3_197_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1VarPattern.html" target="_self">VarPattern</a></td><td class="desc"></td></tr>
+<tr id="row_2_3_198_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1VarPatternNode.html" target="_self">VarPatternNode</a></td><td class="desc">Container for <a class="el" href="classtvm_1_1relay_1_1Var.html">Var</a> </td></tr>
+<tr id="row_2_3_199_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1WildcardPattern.html" target="_self">WildcardPattern</a></td><td class="desc">A pattern which matches anything </td></tr>
+<tr id="row_2_3_200_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1WildcardPatternNode.html" target="_self">WildcardPatternNode</a></td><td class="desc">Wildcard <a class="el" href="classtvm_1_1relay_1_1Pattern.html" title="Pattern is the base type for an ADT match pattern in Relay. ">Pattern</a> </td></tr>
+<tr id="row_2_3_201_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1YoloReorgAttrs.html" target="_self">YoloReorgAttrs</a></td><td class="desc">Attributes used in yolo reorg operators </td></tr>
+<tr id="row_2_4_" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_2_4_" class="arrow" onclick="toggleFolder('2_4_')">&#9658;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacetvm_1_1runtime.html" target="_self">runtime</a></td><td class="desc"></td></tr>
+<tr id="row_2_4_0_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_2_4_0_" class="arrow" onclick="toggleFolder('2_4_0_')">&#9658;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacetvm_1_1runtime_1_1threading.html" target="_self">threading</a></td><td class="desc"></td></tr>
+<tr id="row_2_4_0_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1runtime_1_1threading_1_1ThreadGroup.html" target="_self">ThreadGroup</a></td><td class="desc">A platform-agnostic abstraction for managing a collection of thread pool threads </td></tr>
+<tr id="row_2_4_1_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_2_4_1_" class="arrow" onclick="toggleFolder('2_4_1_')">&#9658;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacetvm_1_1runtime_1_1vm.html" target="_self">vm</a></td><td class="desc"></td></tr>
+<tr id="row_2_4_1_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1runtime_1_1vm_1_1Allocator.html" target="_self">Allocator</a></td><td class="desc"></td></tr>
+<tr id="row_2_4_1_1_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1runtime_1_1vm_1_1Buffer.html" target="_self">Buffer</a></td><td class="desc"></td></tr>
+<tr id="row_2_4_1_2_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1runtime_1_1vm_1_1Executable.html" target="_self">Executable</a></td><td class="desc">The executable emitted by the VM compiler </td></tr>
+<tr id="row_2_4_1_3_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1runtime_1_1vm_1_1Instruction.html" target="_self">Instruction</a></td><td class="desc">A single virtual machine instruction </td></tr>
+<tr id="row_2_4_1_4_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1runtime_1_1vm_1_1MemoryManager.html" target="_self">MemoryManager</a></td><td class="desc"></td></tr>
+<tr id="row_2_4_1_5_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1runtime_1_1vm_1_1Storage.html" target="_self">Storage</a></td><td class="desc">Reference to storage </td></tr>
+<tr id="row_2_4_1_6_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1runtime_1_1vm_1_1StorageObj.html" target="_self">StorageObj</a></td><td class="desc">An object representing a storage allocation </td></tr>
+<tr id="row_2_4_1_7_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1runtime_1_1vm_1_1VirtualMachine.html" target="_self">VirtualMachine</a></td><td class="desc">The virtual machine </td></tr>
+<tr id="row_2_4_1_8_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1runtime_1_1vm_1_1VMClosure.html" target="_self">VMClosure</a></td><td class="desc">Reference to closure </td></tr>
+<tr id="row_2_4_1_9_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1runtime_1_1vm_1_1VMClosureObj.html" target="_self">VMClosureObj</a></td><td class="desc">An object representing a vm closure </td></tr>
+<tr id="row_2_4_1_10_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1runtime_1_1vm_1_1VMFrame.html" target="_self">VMFrame</a></td><td class="desc">A representation of a stack frame </td></tr>
+<tr id="row_2_4_1_11_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1runtime_1_1vm_1_1VMFunction.html" target="_self">VMFunction</a></td><td class="desc">A representation of a Relay function in the VM </td></tr>
+<tr id="row_2_4_2_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1runtime_1_1ADT.html" target="_self">ADT</a></td><td class="desc">Reference to algebraic data type objects </td></tr>
+<tr id="row_2_4_3_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1runtime_1_1ADTObj.html" target="_self">ADTObj</a></td><td class="desc">An object representing a structure or enumeration </td></tr>
+<tr id="row_2_4_4_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_2_4_4_" class="arrow" onclick="toggleFolder('2_4_4_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1runtime_1_1Array.html" target="_self">Array</a></td><td class="desc"><a class="el" href="classtvm_1_1runtime_1_1Array.html" title="Array, container representing a contigious sequence of ObjectRefs. ">Arr [...]
+<tr id="row_2_4_4_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1runtime_1_1Array_1_1ValueConverter.html" target="_self">ValueConverter</a></td><td class="desc"></td></tr>
+<tr id="row_2_4_5_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1runtime_1_1ArrayNode.html" target="_self">ArrayNode</a></td><td class="desc"><a class="el" href="classtvm_1_1runtime_1_1Array.html" title="Array, container representing a contigious sequence of ObjectRefs. ">Array</a> node content in array </td></tr>
+<tr id="row_2_4_6_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1runtime_1_1Closure.html" target="_self">Closure</a></td><td class="desc">Reference to closure </td></tr>
+<tr id="row_2_4_7_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1runtime_1_1ClosureObj.html" target="_self">ClosureObj</a></td><td class="desc">An object representing a closure. This object is used by both the Relay VM and interpreter </td></tr>
+<tr id="row_2_4_8_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1runtime_1_1DataType.html" target="_self">DataType</a></td><td class="desc">Runtime primitive data type </td></tr>
+<tr id="row_2_4_9_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1runtime_1_1DeviceAPI.html" target="_self">DeviceAPI</a></td><td class="desc">TVM Runtime Device API, abstracts the device specific interface for memory management </td></tr>
+<tr id="row_2_4_10_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1runtime_1_1InplaceArrayBase.html" target="_self">InplaceArrayBase</a></td><td class="desc">Base template for classes with array like memory layout </td></tr>
+<tr id="row_2_4_11_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1runtime_1_1IterAdapter.html" target="_self">IterAdapter</a></td><td class="desc">Iterator adapter that adapts TIter to return another type </td></tr>
+<tr id="row_2_4_12_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1runtime_1_1Module.html" target="_self">Module</a></td><td class="desc"><a class="el" href="classtvm_1_1runtime_1_1Module.html" title="Module container of TVM. ">Module</a> container of TVM </td></tr>
+<tr id="row_2_4_13_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1runtime_1_1ModuleNode.html" target="_self">ModuleNode</a></td><td class="desc">Base container of module </td></tr>
+<tr id="row_2_4_14_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_2_4_14_" class="arrow" onclick="toggleFolder('2_4_14_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1runtime_1_1NDArray.html" target="_self">NDArray</a></td><td class="desc">Managed <a class="el" href="classtvm_1_1runtime_1_1NDArray.html" title="Managed NDArray. The array is backed by reference count [...]
+<tr id="row_2_4_14_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1runtime_1_1NDArray_1_1Container.html" target="_self">Container</a></td><td class="desc"><a class="el" href="classtvm_1_1runtime_1_1Object.html" title="base class of all object containers. ">Object</a> container class that backs <a class="el" href="classtvm_1_1runtime_1_1NDArray.html [...]
+<tr id="row_2_4_14_1_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1runtime_1_1NDArray_1_1ContainerBase.html" target="_self">ContainerBase</a></td><td class="desc">The container base structure contains all the fields except for the <a class="el" href="classtvm_1_1runtime_1_1Object.html" title="base class of all object containers. ">Object</a> header [...]
+<tr id="row_2_4_15_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1runtime_1_1NullOptType.html" target="_self">NullOptType</a></td><td class="desc">Helper to represent nullptr for optional </td></tr>
+<tr id="row_2_4_16_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1runtime_1_1ObjAllocatorBase.html" target="_self">ObjAllocatorBase</a></td><td class="desc">Base class of object allocators that implements make. Use curiously recurring template pattern </td></tr>
+<tr id="row_2_4_17_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1runtime_1_1Object.html" target="_self">Object</a></td><td class="desc">Base class of all object containers </td></tr>
+<tr id="row_2_4_18_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1runtime_1_1ObjectEqual.html" target="_self">ObjectEqual</a></td><td class="desc">String-aware <a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html" title="Base class of all object reference. ">ObjectRef</a> hash functor </td></tr>
+<tr id="row_2_4_19_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1runtime_1_1ObjectHash.html" target="_self">ObjectHash</a></td><td class="desc">String-aware <a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html" title="Base class of all object reference. ">ObjectRef</a> equal functor </td></tr>
+<tr id="row_2_4_20_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1runtime_1_1ObjectPtr.html" target="_self">ObjectPtr</a></td><td class="desc">A custom smart pointer for <a class="el" href="classtvm_1_1runtime_1_1Object.html" title="base class of all object containers. ">Object</a> </td></tr>
+<tr id="row_2_4_21_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1runtime_1_1ObjectPtrEqual.html" target="_self">ObjectPtrEqual</a></td><td class="desc"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html" title="Base class of all object reference. ">ObjectRef</a> equal functor </td></tr>
+<tr id="row_2_4_22_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1runtime_1_1ObjectPtrHash.html" target="_self">ObjectPtrHash</a></td><td class="desc"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html" title="Base class of all object reference. ">ObjectRef</a> hash functor </td></tr>
+<tr id="row_2_4_23_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html" target="_self">ObjectRef</a></td><td class="desc">Base class of all object reference </td></tr>
+<tr id="row_2_4_24_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1runtime_1_1ObjectTypeChecker.html" target="_self">ObjectTypeChecker</a></td><td class="desc"><a class="el" href="classtvm_1_1Type.html" title="Managed reference to TypeNode. ">Type</a> traits for runtime type check during FFI conversion </td></tr>
+<tr id="row_2_4_25_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1runtime_1_1ObjectTypeChecker_3_01Array_3_01T_01_4_01_4.html" target="_self">ObjectTypeChecker&lt; Array&lt; T &gt; &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_2_4_26_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1runtime_1_1ObjectTypeChecker_3_01Map_3_01K_00_01V_01_4_01_4.html" target="_self">ObjectTypeChecker&lt; Map&lt; K, V &gt; &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_2_4_27_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1runtime_1_1Optional.html" target="_self">Optional</a></td><td class="desc"><a class="el" href="classtvm_1_1runtime_1_1Optional.html" title="Optional container that to represent to a Nullable variant of T. ">Optional</a> container that to represent to a Nullable variant of T </td></tr>
+<tr id="row_2_4_28_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1runtime_1_1PackedFunc.html" target="_self">PackedFunc</a></td><td class="desc">Packed function is a type-erased function. The arguments are passed by packed format </td></tr>
+<tr id="row_2_4_29_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1runtime_1_1PackedFuncValueConverter.html" target="_self">PackedFuncValueConverter</a></td><td class="desc"><a class="el" href="classtvm_1_1Type.html" title="Managed reference to TypeNode. ">Type</a> trait to specify special value conversion rules from <a class="el" href="classtvm_1_1 [...]
+<tr id="row_2_4_30_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1runtime_1_1PackedFuncValueConverter_3_01Optional_3_01T_01_4_01_4.html" target="_self">PackedFuncValueConverter&lt; Optional&lt; T &gt; &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_2_4_31_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1runtime_1_1PackedFuncValueConverter_3_01PrimExpr_01_4.html" target="_self">PackedFuncValueConverter&lt; PrimExpr &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_2_4_32_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1runtime_1_1PackedFuncValueConverter_3_01tvm_1_1Bool_01_4.html" target="_self">PackedFuncValueConverter&lt; tvm::Bool &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_2_4_33_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1runtime_1_1PackedFuncValueConverter_3_01tvm_1_1Integer_01_4.html" target="_self">PackedFuncValueConverter&lt; tvm::Integer &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_2_4_34_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1runtime_1_1PackedFuncValueConverter_3_1_1tvm_1_1runtime_1_1String_01_4.html" target="_self">PackedFuncValueConverter&lt;::tvm::runtime::String &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_2_4_35_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1runtime_1_1Registry.html" target="_self">Registry</a></td><td class="desc"><a class="el" href="classtvm_1_1runtime_1_1Registry.html" title="Registry for global function. ">Registry</a> for global function </td></tr>
+<tr id="row_2_4_36_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1runtime_1_1ReverseIterAdapter.html" target="_self">ReverseIterAdapter</a></td><td class="desc">Iterator adapter that adapts TIter to return another type </td></tr>
+<tr id="row_2_4_37_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_2_4_37_" class="arrow" onclick="toggleFolder('2_4_37_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1runtime_1_1SimpleObjAllocator.html" target="_self">SimpleObjAllocator</a></td><td class="desc"></td></tr>
+<tr id="row_2_4_37_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1runtime_1_1SimpleObjAllocator_1_1ArrayHandler.html" target="_self">ArrayHandler</a></td><td class="desc"></td></tr>
+<tr id="row_2_4_37_1_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1runtime_1_1SimpleObjAllocator_1_1Handler.html" target="_self">Handler</a></td><td class="desc"></td></tr>
+<tr id="row_2_4_38_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1runtime_1_1String.html" target="_self">String</a></td><td class="desc">Reference to string objects </td></tr>
+<tr id="row_2_4_39_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_2_4_39_" class="arrow" onclick="toggleFolder('2_4_39_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1runtime_1_1StringObj.html" target="_self">StringObj</a></td><td class="desc">An object representing string. It's POD type </td></tr>
+<tr id="row_2_4_39_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1runtime_1_1StringObj_1_1FromStd.html" target="_self">FromStd</a></td><td class="desc">An object representing string moved from std::string </td></tr>
+<tr id="row_2_4_40_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1runtime_1_1TVMArgs.html" target="_self">TVMArgs</a></td><td class="desc">Arguments into TVM functions </td></tr>
+<tr id="row_2_4_41_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1runtime_1_1TVMArgsSetter.html" target="_self">TVMArgsSetter</a></td><td class="desc"></td></tr>
+<tr id="row_2_4_42_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1runtime_1_1TVMArgValue.html" target="_self">TVMArgValue</a></td><td class="desc">A single argument value to <a class="el" href="classtvm_1_1runtime_1_1PackedFunc.html" title="Packed function is a type-erased function. The arguments are passed by packed format. ">PackedFunc</a>. Contai [...]
+<tr id="row_2_4_43_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1runtime_1_1TVMMovableArgValue__.html" target="_self">TVMMovableArgValue_</a></td><td class="desc">Internal auxiliary struct for <a class="el" href="classtvm_1_1runtime_1_1TypedPackedFunc.html" title="Please refer to TypedPackedFunc&lt;R(Args..)&gt;. ">TypedPackedFunc</a> to indicate a [...]
+<tr id="row_2_4_44_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1runtime_1_1TVMPODValue__.html" target="_self">TVMPODValue_</a></td><td class="desc">Internal base class to handle conversion to POD values </td></tr>
+<tr id="row_2_4_45_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1runtime_1_1TVMRetValue.html" target="_self">TVMRetValue</a></td><td class="desc">Return Value container, Unlike <a class="el" href="classtvm_1_1runtime_1_1TVMArgValue.html" title="A single argument value to PackedFunc. Containing both type_code and TVMValue. ">TVMArgValue</a>, which o [...]
+<tr id="row_2_4_46_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1runtime_1_1TypedPackedFunc.html" target="_self">TypedPackedFunc</a></td><td class="desc">Please refer to <a class="el" href="classtvm_1_1runtime_1_1TypedPackedFunc_3_01R_07Args_8_8_8_08_4.html#TypedPackedFuncAnchor">TypedPackedFunc&lt;R(Args..)&gt;</a> </td></tr>
+<tr id="row_2_4_47_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1runtime_1_1TypedPackedFunc_3_01R_07Args_8_8_8_08_4.html" target="_self">TypedPackedFunc&lt; R(Args...)&gt;</a></td><td class="desc">A <a class="el" href="classtvm_1_1runtime_1_1PackedFunc.html" title="Packed function is a type-erased function. The arguments are passed by packed format [...]
+<tr id="row_2_4_48_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1runtime_1_1TypeIndex.html" target="_self">TypeIndex</a></td><td class="desc">Namespace for the list of type index </td></tr>
+<tr id="row_2_5_" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_2_5_" class="arrow" onclick="toggleFolder('2_5_')">&#9658;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacetvm_1_1te.html" target="_self">te</a></td><td class="desc"><a class="el" href="classtvm_1_1te_1_1Tensor.html" title="Tensor structure representing a possible input, or intermediate computation result. ">Tensor</a [...]
+<tr id="row_2_5_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1te_1_1BaseComputeOpNode.html" target="_self">BaseComputeOpNode</a></td><td class="desc">A Compute op that compute a tensor on certain domain. This is the base class for <a class="el" href="classtvm_1_1te_1_1ComputeOp.html" title="Managed reference to ComputeOpNode. ">ComputeOp</a> (ope [...]
+<tr id="row_2_5_1_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1te_1_1ComputeOp.html" target="_self">ComputeOp</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1te_1_1ComputeOpNode.html" title="A Compute op that compute a tensor on certain domain. ">ComputeOpNode</a> </td></tr>
+<tr id="row_2_5_2_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1te_1_1ComputeOpNode.html" target="_self">ComputeOpNode</a></td><td class="desc">A Compute op that compute a tensor on certain domain </td></tr>
+<tr id="row_2_5_3_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1te_1_1ExternOp.html" target="_self">ExternOp</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1te_1_1ExternOpNode.html" title="External computation that cannot be splitted. ">ExternOpNode</a> </td></tr>
+<tr id="row_2_5_4_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1te_1_1ExternOpNode.html" target="_self">ExternOpNode</a></td><td class="desc">External computation that cannot be splitted </td></tr>
+<tr id="row_2_5_5_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1te_1_1Fuse.html" target="_self">Fuse</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1te_1_1FuseNode.html" title="Fuse two domains into one domain. ">FuseNode</a> </td></tr>
+<tr id="row_2_5_6_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1te_1_1FuseNode.html" target="_self">FuseNode</a></td><td class="desc"><a class="el" href="classtvm_1_1te_1_1Fuse.html" title="Managed reference to FuseNode. ">Fuse</a> two domains into one domain </td></tr>
+<tr id="row_2_5_7_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1te_1_1HybridOp.html" target="_self">HybridOp</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1te_1_1HybridOpNode.html" title="A computation operator that generated by hybrid script. ">HybridOpNode</a> </td></tr>
+<tr id="row_2_5_8_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1te_1_1HybridOpNode.html" target="_self">HybridOpNode</a></td><td class="desc">A computation operator that generated by hybrid script </td></tr>
+<tr id="row_2_5_9_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1te_1_1IterVarAttr.html" target="_self">IterVarAttr</a></td><td class="desc">Additional scheduable attributes about IterVar </td></tr>
+<tr id="row_2_5_10_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1te_1_1IterVarAttrNode.html" target="_self">IterVarAttrNode</a></td><td class="desc">Node container for IterVar attr </td></tr>
+<tr id="row_2_5_11_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1te_1_1IterVarRelation.html" target="_self">IterVarRelation</a></td><td class="desc">The schedule relation between IterVars can be <a class="el" href="classtvm_1_1te_1_1Split.html" title="Managed reference to SplitNode. ">Split</a>, <a class="el" href="classtvm_1_1te_1_1Fuse.html" titl [...]
+<tr id="row_2_5_12_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1te_1_1IterVarRelationNode.html" target="_self">IterVarRelationNode</a></td><td class="desc">Base node of iteration var </td></tr>
+<tr id="row_2_5_13_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1te_1_1Operation.html" target="_self">Operation</a></td><td class="desc"><a class="el" href="classtvm_1_1te_1_1Operation.html" title="Operation that produces tensors. ">Operation</a> that produces tensors </td></tr>
+<tr id="row_2_5_14_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1te_1_1OperationNode.html" target="_self">OperationNode</a></td><td class="desc">Base class of all operation nodes </td></tr>
+<tr id="row_2_5_15_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1te_1_1PlaceholderOp.html" target="_self">PlaceholderOp</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1te_1_1PlaceholderOpNode.html" title="A placeholder op represents an input placeholder. ">PlaceholderOpNode</a> </td></tr>
+<tr id="row_2_5_16_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1te_1_1PlaceholderOpNode.html" target="_self">PlaceholderOpNode</a></td><td class="desc">A placeholder op represents an input placeholder </td></tr>
+<tr id="row_2_5_17_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1te_1_1Rebase.html" target="_self">Rebase</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1te_1_1RebaseNode.html" title="Rebase the iteration to make min to be 0. This is useful to normalize the Schedule to make every leaf...">RebaseNode</a> </td></tr>
+<tr id="row_2_5_18_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1te_1_1RebaseNode.html" target="_self">RebaseNode</a></td><td class="desc"><a class="el" href="classtvm_1_1te_1_1Rebase.html" title="Managed reference to RebaseNode. ">Rebase</a> the iteration to make min to be 0. This is useful to normalize the <a class="el" href="classtvm_1_1te_1_1Sc [...]
+<tr id="row_2_5_19_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1te_1_1ScanOp.html" target="_self">ScanOp</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1te_1_1ScanOpNode.html" title="Symbolic scan. ">ScanOpNode</a> </td></tr>
+<tr id="row_2_5_20_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1te_1_1ScanOpNode.html" target="_self">ScanOpNode</a></td><td class="desc">Symbolic scan </td></tr>
+<tr id="row_2_5_21_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1te_1_1Schedule.html" target="_self">Schedule</a></td><td class="desc">Global schedule container For operations and all the operations they depend on. The schedule per <a class="el" href="classtvm_1_1te_1_1Operation.html" title="Operation that produces tensors. ">Operation</a> is named [...]
+<tr id="row_2_5_22_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1te_1_1ScheduleNode.html" target="_self">ScheduleNode</a></td><td class="desc">Node container for schedule </td></tr>
+<tr id="row_2_5_23_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1te_1_1Singleton.html" target="_self">Singleton</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1te_1_1SingletonNode.html" title="Singleton iterator [0, 1) ">SingletonNode</a> </td></tr>
+<tr id="row_2_5_24_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1te_1_1SingletonNode.html" target="_self">SingletonNode</a></td><td class="desc"><a class="el" href="classtvm_1_1te_1_1Singleton.html" title="Managed reference to SingletonNode. ">Singleton</a> iterator [0, 1) </td></tr>
+<tr id="row_2_5_25_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1te_1_1SpecializedCondition.html" target="_self">SpecializedCondition</a></td><td class="desc">Specialized condition to enable op specialization </td></tr>
+<tr id="row_2_5_26_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1te_1_1SpecializedConditionNode.html" target="_self">SpecializedConditionNode</a></td><td class="desc">Container for specialization conditions </td></tr>
+<tr id="row_2_5_27_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1te_1_1Split.html" target="_self">Split</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1te_1_1SplitNode.html" title="Split the parent domain into product of outer and iter. ">SplitNode</a> </td></tr>
+<tr id="row_2_5_28_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1te_1_1SplitNode.html" target="_self">SplitNode</a></td><td class="desc"><a class="el" href="classtvm_1_1te_1_1Split.html" title="Managed reference to SplitNode. ">Split</a> the parent domain into product of outer and iter </td></tr>
+<tr id="row_2_5_29_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1te_1_1Stage.html" target="_self">Stage</a></td><td class="desc"><a class="el" href="classtvm_1_1te_1_1Stage.html" title="Stage, contains scheduling for a stage of computation. ">Stage</a>, contains scheduling for a stage of computation </td></tr>
+<tr id="row_2_5_30_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1te_1_1StageNode.html" target="_self">StageNode</a></td><td class="desc"><a class="el" href="classtvm_1_1te_1_1Stage.html" title="Stage, contains scheduling for a stage of computation. ">Stage</a> </td></tr>
+<tr id="row_2_5_31_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_2_5_31_" class="arrow" onclick="toggleFolder('2_5_31_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1te_1_1Tensor.html" target="_self">Tensor</a></td><td class="desc"><a class="el" href="classtvm_1_1te_1_1Tensor.html" title="Tensor structure representing a possible input, or intermediate computation  [...]
+<tr id="row_2_5_31_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1te_1_1Tensor_1_1Slice.html" target="_self">Slice</a></td><td class="desc">Data structure to represent a slice that fixes first k coordinates. This is used to enable syntax sugar of <a class="el" href="classtvm_1_1te_1_1Tensor.html" title="Tensor structure representing a possible inp [...]
+<tr id="row_2_5_32_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1te_1_1TensorComputeOp.html" target="_self">TensorComputeOp</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1te_1_1TensorComputeOpNode.html" title="A TenorCompute op that compute a tensor with an tensor intrinsic. ">TensorComputeOpNode</a> </td></tr>
+<tr id="row_2_5_33_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1te_1_1TensorComputeOpNode.html" target="_self">TensorComputeOpNode</a></td><td class="desc">A TenorCompute op that compute a tensor with an tensor intrinsic </td></tr>
+<tr id="row_2_5_34_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1te_1_1TensorDom.html" target="_self">TensorDom</a></td><td class="desc">Temporary data structure to store union of bounds of each axis of <a class="el" href="classtvm_1_1te_1_1Tensor.html" title="Tensor structure representing a possible input, or intermediate computation result. ">Te [...]
+<tr id="row_2_5_35_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1te_1_1TensorIntrin.html" target="_self">TensorIntrin</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1te_1_1TensorIntrinNode.html" title="Node to represent a Tensor intrinsic operator. ">TensorIntrinNode</a> </td></tr>
+<tr id="row_2_5_36_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1te_1_1TensorIntrinCall.html" target="_self">TensorIntrinCall</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1te_1_1TensorIntrinCallNode.html">TensorIntrinCallNode</a> </td></tr>
+<tr id="row_2_5_37_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1te_1_1TensorIntrinCallNode.html" target="_self">TensorIntrinCallNode</a></td><td class="desc"></td></tr>
+<tr id="row_2_5_38_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1te_1_1TensorIntrinNode.html" target="_self">TensorIntrinNode</a></td><td class="desc">Node to represent a <a class="el" href="classtvm_1_1te_1_1Tensor.html" title="Tensor structure representing a possible input, or intermediate computation result. ">Tensor</a> intrinsic operator </td></tr>
+<tr id="row_2_5_39_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1te_1_1TensorNode.html" target="_self">TensorNode</a></td><td class="desc">Node to represent a tensor </td></tr>
+<tr id="row_2_6_" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_2_6_" class="arrow" onclick="toggleFolder('2_6_')">&#9658;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacetvm_1_1tir.html" target="_self">tir</a></td><td class="desc"></td></tr>
+<tr id="row_2_6_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1Add.html" target="_self">Add</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1AddNode.html" title="a + b ">AddNode</a> </td></tr>
+<tr id="row_2_6_1_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1AddNode.html" target="_self">AddNode</a></td><td class="desc"><ul>
 <li>b </li>
 </ul>
 </td></tr>
-<tr id="row_2_5_2_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1Allocate.html" target="_self">Allocate</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1AllocateNode.html" title="Allocate a buffer that can be used in body. ">AllocateNode</a> </td></tr>
-<tr id="row_2_5_3_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1AllocateNode.html" target="_self">AllocateNode</a></td><td class="desc"><a class="el" href="classtvm_1_1tir_1_1Allocate.html" title="Managed reference to AllocateNode. ">Allocate</a> a buffer that can be used in body </td></tr>
-<tr id="row_2_5_4_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1And.html" target="_self">And</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1AndNode.html" title="a &amp;&amp; b ">AndNode</a> </td></tr>
-<tr id="row_2_5_5_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1AndNode.html" target="_self">AndNode</a></td><td class="desc">&amp;&amp; b </td></tr>
-<tr id="row_2_5_6_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1Any.html" target="_self">Any</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1AnyNode.html" title="Any shape. ">AnyNode</a> </td></tr>
-<tr id="row_2_5_7_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1AnyNode.html" target="_self">AnyNode</a></td><td class="desc"><a class="el" href="classtvm_1_1tir_1_1Any.html" title="Managed reference to AnyNode. ">Any</a> shape </td></tr>
-<tr id="row_2_5_8_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1AssertStmt.html" target="_self">AssertStmt</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1AssertStmtNode.html" title="Assert condition, if an error occurs, return the error message. ">AssertStmtNode</a> </td></tr>
-<tr id="row_2_5_9_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1AssertStmtNode.html" target="_self">AssertStmtNode</a></td><td class="desc">Assert condition, if an error occurs, return the error message </td></tr>
-<tr id="row_2_5_10_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1AttrStmt.html" target="_self">AttrStmt</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1AttrStmtNode.html" title="Define certain auxiliary attribute for the body to be a symbolic value. This provide auxiliary inform...">AttrStmtNode</a> </td></tr>
-<tr id="row_2_5_11_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1AttrStmtNode.html" target="_self">AttrStmtNode</a></td><td class="desc">Define certain auxiliary attribute for the body to be a symbolic value. This provide auxiliary information for IR passes that transforms body </td></tr>
-<tr id="row_2_5_12_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1BijectiveLayout.html" target="_self">BijectiveLayout</a></td><td class="desc">Bijective function mapping for data layout transformation. Given two <a class="el" href="classtvm_1_1tir_1_1Layout.html" title="Managed reference to LayoutNode. ">Layout</a>, <a class="el" href="class [...]
-<tr id="row_2_5_13_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1BijectiveLayoutNode.html" target="_self">BijectiveLayoutNode</a></td><td class="desc"></td></tr>
-<tr id="row_2_5_14_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1BinaryOpNode.html" target="_self">BinaryOpNode</a></td><td class="desc">Base template to implement binary ops </td></tr>
-<tr id="row_2_5_15_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1Broadcast.html" target="_self">Broadcast</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1BroadcastNode.html" title="Create a vector where all the elements are value. ">BroadcastNode</a> </td></tr>
-<tr id="row_2_5_16_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1BroadcastNode.html" target="_self">BroadcastNode</a></td><td class="desc">Create a vector where all the elements are value </td></tr>
-<tr id="row_2_5_17_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1Buffer.html" target="_self">Buffer</a></td><td class="desc"><a class="el" href="classtvm_1_1tir_1_1Buffer.html" title="Buffer is a symbolic n-darray structure. It is a composition of primitive symbolic types...">Buffer</a> is a symbolic n-darray structure. It is a composition o [...]
-<tr id="row_2_5_18_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1BufferLoad.html" target="_self">BufferLoad</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1BufferLoadNode.html" title="Load value from the high dimension buffer. ">BufferLoadNode</a> </td></tr>
-<tr id="row_2_5_19_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1BufferLoadNode.html" target="_self">BufferLoadNode</a></td><td class="desc"><a class="el" href="classtvm_1_1tir_1_1Load.html" title="Managed reference to LoadNode. ">Load</a> value from the high dimension buffer </td></tr>
-<tr id="row_2_5_20_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1BufferNode.html" target="_self">BufferNode</a></td><td class="desc">Node to represent a buffer </td></tr>
-<tr id="row_2_5_21_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1BufferRealize.html" target="_self">BufferRealize</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1BufferRealizeNode.html" title="Annotate the region where the buffer need to be read and write in the body. We only need to allocate ...">BufferR [...]
-<tr id="row_2_5_22_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1BufferRealizeNode.html" target="_self">BufferRealizeNode</a></td><td class="desc">Annotate the region where the buffer need to be read and write in the body. We only need to allocate the space for the corresponding region </td></tr>
-<tr id="row_2_5_23_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1BufferStore.html" target="_self">BufferStore</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1BufferStoreNode.html" title="Store value to the high dimension buffer. ">BufferStoreNode</a> </td></tr>
-<tr id="row_2_5_24_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1BufferStoreNode.html" target="_self">BufferStoreNode</a></td><td class="desc"><a class="el" href="classtvm_1_1tir_1_1Store.html" title="Managed reference to StoreNode. ">Store</a> value to the high dimension buffer </td></tr>
-<tr id="row_2_5_25_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1Call.html" target="_self">Call</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1CallNode.html" title="Call node. ">CallNode</a> </td></tr>
-<tr id="row_2_5_26_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1CallNode.html" target="_self">CallNode</a></td><td class="desc"><a class="el" href="classtvm_1_1tir_1_1Call.html" title="Managed reference to CallNode. ">Call</a> node </td></tr>
-<tr id="row_2_5_27_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1Cast.html" target="_self">Cast</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1CastNode.html" title="Cast value from one data type to another. ">CastNode</a> </td></tr>
-<tr id="row_2_5_28_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1CastNode.html" target="_self">CastNode</a></td><td class="desc"><a class="el" href="classtvm_1_1tir_1_1Cast.html" title="Managed reference to CastNode. ">Cast</a> value from one data type to another </td></tr>
-<tr id="row_2_5_29_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1CmpOpNode.html" target="_self">CmpOpNode</a></td><td class="desc">Base template to implement comparison ops </td></tr>
-<tr id="row_2_5_30_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1CommReducer.html" target="_self">CommReducer</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1CommReducerNode.html" title="A commutative reducer node to represent a commutative binary operator with identity element...">CommReducerNode</a> </td></tr>
-<tr id="row_2_5_31_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1CommReducerNode.html" target="_self">CommReducerNode</a></td><td class="desc">A commutative reducer node to represent a commutative binary operator with identity element </td></tr>
-<tr id="row_2_5_32_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1DataProducer.html" target="_self">DataProducer</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1DataProducerNode.html" title="Base node for data producers. ">DataProducerNode</a> </td></tr>
-<tr id="row_2_5_33_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1DataProducerNode.html" target="_self">DataProducerNode</a></td><td class="desc">Base node for data producers </td></tr>
-<tr id="row_2_5_34_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1Div.html" target="_self">Div</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1DivNode.html" title="a / b in the C semnatics. ">DivNode</a> </td></tr>
-<tr id="row_2_5_35_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1DivNode.html" target="_self">DivNode</a></td><td class="desc">/ b in the C semnatics </td></tr>
-<tr id="row_2_5_36_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1EQ.html" target="_self">EQ</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1EQNode.html" title="a == b ">EQNode</a> </td></tr>
-<tr id="row_2_5_37_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1EQNode.html" target="_self">EQNode</a></td><td class="desc">== b </td></tr>
-<tr id="row_2_5_38_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1Evaluate.html" target="_self">Evaluate</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1EvaluateNode.html" title="Evaluates an expression. This is mostly used for putting a Call node into Stmt. ">EvaluateNode</a> </td></tr>
-<tr id="row_2_5_39_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1EvaluateNode.html" target="_self">EvaluateNode</a></td><td class="desc">Evaluates an expression. This is mostly used for putting a <a class="el" href="classtvm_1_1tir_1_1Call.html" title="Managed reference to CallNode. ">Call</a> node into <a class="el" href="classtvm_1_1tir_1_ [...]
-<tr id="row_2_5_40_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1tir_1_1ExprDeepEqual.html" target="_self">ExprDeepEqual</a></td><td class="desc">Compare two expressions recursively and check if they are equal to each other without var remapping </td></tr>
-<tr id="row_2_5_41_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1ExprFunctor.html" target="_self">ExprFunctor</a></td><td class="desc">A dynamical functor that dispatches on in the first Expr argument. You can use this as a more powerful Visitor, since it allows you to define function signatures of Visit Function </td></tr>
-<tr id="row_2_5_42_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1ExprFunctor_3_01R_07const_01PrimExpr_01_6n_00_01Args_8_8_8_08_4.html" target="_self">ExprFunctor&lt; R(const PrimExpr &amp;n, Args...)&gt;</a></td><td class="desc"></td></tr>
-<tr id="row_2_5_43_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1ExprMutator.html" target="_self">ExprMutator</a></td><td class="desc"><a class="el" href="classtvm_1_1tir_1_1ExprMutator.html" title="ExprMutator that mutates expressions. ">ExprMutator</a> that mutates expressions </td></tr>
-<tr id="row_2_5_44_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1ExprVisitor.html" target="_self">ExprVisitor</a></td><td class="desc"><a class="el" href="classtvm_1_1tir_1_1ExprVisitor.html" title="ExprVisitor. ">ExprVisitor</a> </td></tr>
-<tr id="row_2_5_45_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1FloorDiv.html" target="_self">FloorDiv</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1FloorDivNode.html" title="Floor division, floor(a/b) ">FloorDivNode</a> </td></tr>
-<tr id="row_2_5_46_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1FloorDivNode.html" target="_self">FloorDivNode</a></td><td class="desc">Floor division, floor(a/b) </td></tr>
-<tr id="row_2_5_47_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1FloorMod.html" target="_self">FloorMod</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1FloorModNode.html" title="The remainder of the floordiv. ">FloorModNode</a> </td></tr>
-<tr id="row_2_5_48_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1FloorModNode.html" target="_self">FloorModNode</a></td><td class="desc">The remainder of the floordiv </td></tr>
-<tr id="row_2_5_49_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1For.html" target="_self">For</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1ForNode.html" title="A for loop, with poissible type annotations. ">ForNode</a> </td></tr>
-<tr id="row_2_5_50_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1ForNode.html" target="_self">ForNode</a></td><td class="desc">A for loop, with poissible type annotations </td></tr>
-<tr id="row_2_5_51_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1GE.html" target="_self">GE</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1GENode.html" title="a &gt;= b ">GENode</a> </td></tr>
-<tr id="row_2_5_52_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1GENode.html" target="_self">GENode</a></td><td class="desc">&gt;= b </td></tr>
-<tr id="row_2_5_53_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1GT.html" target="_self">GT</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1GTNode.html" title="a &gt; b ">GTNode</a> </td></tr>
-<tr id="row_2_5_54_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1GTNode.html" target="_self">GTNode</a></td><td class="desc">&gt; b </td></tr>
-<tr id="row_2_5_55_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1IfThenElse.html" target="_self">IfThenElse</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1IfThenElseNode.html" title="IfThenElse statment. ">IfThenElseNode</a> </td></tr>
-<tr id="row_2_5_56_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1IfThenElseNode.html" target="_self">IfThenElseNode</a></td><td class="desc"><a class="el" href="classtvm_1_1tir_1_1IfThenElse.html" title="Managed reference to IfThenElseNode. ">IfThenElse</a> statment </td></tr>
-<tr id="row_2_5_57_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1IterVar.html" target="_self">IterVar</a></td><td class="desc">Iteration Variable, represents an iteration over an integer interval </td></tr>
-<tr id="row_2_5_58_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1IterVarNode.html" target="_self">IterVarNode</a></td><td class="desc">An iteration variable representing an iteration over a one dimensional interval </td></tr>
-<tr id="row_2_5_59_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1Layout.html" target="_self">Layout</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1LayoutNode.html" title="Layout is to describe how data is organized within an N-dimention tensor. It is composed of upper cas...">LayoutNode</a> </td></tr>
-<tr id="row_2_5_60_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1LayoutAxis.html" target="_self">LayoutAxis</a></td><td class="desc"></td></tr>
-<tr id="row_2_5_61_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1LayoutNode.html" target="_self">LayoutNode</a></td><td class="desc"><a class="el" href="classtvm_1_1tir_1_1Layout.html" title="Managed reference to LayoutNode. ">Layout</a> is to describe how data is organized within an N-dimention tensor. It is composed of upper cases, lower c [...]
-<tr id="row_2_5_62_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1LE.html" target="_self">LE</a></td><td class="desc">Managed reference to <a class="el" href="structtvm_1_1tir_1_1LENode.html" title="a &lt;= b ">LENode</a> </td></tr>
-<tr id="row_2_5_63_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1tir_1_1LENode.html" target="_self">LENode</a></td><td class="desc">&lt;= b </td></tr>
-<tr id="row_2_5_64_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1Let.html" target="_self">Let</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1LetNode.html" title="Let binding. Bind var to value then evaluate body. ">LetNode</a> </td></tr>
-<tr id="row_2_5_65_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1LetNode.html" target="_self">LetNode</a></td><td class="desc"><a class="el" href="classtvm_1_1tir_1_1Let.html" title="Managed reference to LetNode. ">Let</a> binding. Bind var to value then evaluate body </td></tr>
-<tr id="row_2_5_66_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1LetStmt.html" target="_self">LetStmt</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1LetStmtNode.html" title="Let binding, bind var to value, then run body. ">LetStmtNode</a> </td></tr>
-<tr id="row_2_5_67_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1LetStmtNode.html" target="_self">LetStmtNode</a></td><td class="desc"><a class="el" href="classtvm_1_1tir_1_1Let.html" title="Managed reference to LetNode. ">Let</a> binding, bind var to value, then run body </td></tr>
-<tr id="row_2_5_68_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1Load.html" target="_self">Load</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1LoadNode.html" title="Load the value from buffer_var. ">LoadNode</a> </td></tr>
-<tr id="row_2_5_69_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1LoadNode.html" target="_self">LoadNode</a></td><td class="desc"><a class="el" href="classtvm_1_1tir_1_1Load.html" title="Managed reference to LoadNode. ">Load</a> the value from buffer_var </td></tr>
-<tr id="row_2_5_70_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1LT.html" target="_self">LT</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1LTNode.html" title="a &lt; b ">LTNode</a> </td></tr>
-<tr id="row_2_5_71_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1LTNode.html" target="_self">LTNode</a></td><td class="desc">&lt; b </td></tr>
-<tr id="row_2_5_72_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1Max.html" target="_self">Max</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1MaxNode.html" title="max(a, b) ">MaxNode</a> </td></tr>
-<tr id="row_2_5_73_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1MaxNode.html" target="_self">MaxNode</a></td><td class="desc">Max(a, b) </td></tr>
-<tr id="row_2_5_74_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1Min.html" target="_self">Min</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1MinNode.html" title="min(a, b) ">MinNode</a> </td></tr>
-<tr id="row_2_5_75_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1MinNode.html" target="_self">MinNode</a></td><td class="desc">Min(a, b) </td></tr>
-<tr id="row_2_5_76_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1Mod.html" target="_self">Mod</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1ModNode.html" title="a % b in the C semnatics. ">ModNode</a> </td></tr>
-<tr id="row_2_5_77_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1ModNode.html" target="_self">ModNode</a></td><td class="desc">% b in the C semnatics </td></tr>
-<tr id="row_2_5_78_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1Mul.html" target="_self">Mul</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1MulNode.html" title="a * b ">MulNode</a> </td></tr>
-<tr id="row_2_5_79_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1MulNode.html" target="_self">MulNode</a></td><td class="desc"><ul>
+<tr id="row_2_6_2_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1Allocate.html" target="_self">Allocate</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1AllocateNode.html" title="Allocate a buffer that can be used in body. ">AllocateNode</a> </td></tr>
+<tr id="row_2_6_3_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1AllocateNode.html" target="_self">AllocateNode</a></td><td class="desc"><a class="el" href="classtvm_1_1tir_1_1Allocate.html" title="Managed reference to AllocateNode. ">Allocate</a> a buffer that can be used in body </td></tr>
+<tr id="row_2_6_4_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1And.html" target="_self">And</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1AndNode.html" title="a &amp;&amp; b ">AndNode</a> </td></tr>
+<tr id="row_2_6_5_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1AndNode.html" target="_self">AndNode</a></td><td class="desc">&amp;&amp; b </td></tr>
+<tr id="row_2_6_6_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1Any.html" target="_self">Any</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1AnyNode.html" title="Any shape. ">AnyNode</a> </td></tr>
+<tr id="row_2_6_7_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1AnyNode.html" target="_self">AnyNode</a></td><td class="desc"><a class="el" href="classtvm_1_1tir_1_1Any.html" title="Managed reference to AnyNode. ">Any</a> shape </td></tr>
+<tr id="row_2_6_8_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1AssertStmt.html" target="_self">AssertStmt</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1AssertStmtNode.html" title="Assert condition, if an error occurs, return the error message. ">AssertStmtNode</a> </td></tr>
+<tr id="row_2_6_9_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1AssertStmtNode.html" target="_self">AssertStmtNode</a></td><td class="desc">Assert condition, if an error occurs, return the error message </td></tr>
+<tr id="row_2_6_10_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1AttrStmt.html" target="_self">AttrStmt</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1AttrStmtNode.html" title="Define certain auxiliary attribute for the body to be a symbolic value. This provide auxiliary inform...">AttrStmtNode</a> </td></tr>
+<tr id="row_2_6_11_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1AttrStmtNode.html" target="_self">AttrStmtNode</a></td><td class="desc">Define certain auxiliary attribute for the body to be a symbolic value. This provide auxiliary information for IR passes that transforms body </td></tr>
+<tr id="row_2_6_12_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1BijectiveLayout.html" target="_self">BijectiveLayout</a></td><td class="desc">Bijective function mapping for data layout transformation. Given two <a class="el" href="classtvm_1_1tir_1_1Layout.html" title="Managed reference to LayoutNode. ">Layout</a>, <a class="el" href="class [...]
+<tr id="row_2_6_13_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1BijectiveLayoutNode.html" target="_self">BijectiveLayoutNode</a></td><td class="desc"></td></tr>
+<tr id="row_2_6_14_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1BinaryOpNode.html" target="_self">BinaryOpNode</a></td><td class="desc">Base template to implement binary ops </td></tr>
+<tr id="row_2_6_15_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1Broadcast.html" target="_self">Broadcast</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1BroadcastNode.html" title="Create a vector where all the elements are value. ">BroadcastNode</a> </td></tr>
+<tr id="row_2_6_16_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1BroadcastNode.html" target="_self">BroadcastNode</a></td><td class="desc">Create a vector where all the elements are value </td></tr>
+<tr id="row_2_6_17_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1Buffer.html" target="_self">Buffer</a></td><td class="desc"><a class="el" href="classtvm_1_1tir_1_1Buffer.html" title="Buffer is a symbolic n-darray structure. It is a composition of primitive symbolic types...">Buffer</a> is a symbolic n-darray structure. It is a composition o [...]
+<tr id="row_2_6_18_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1BufferLoad.html" target="_self">BufferLoad</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1BufferLoadNode.html" title="Load value from the high dimension buffer. ">BufferLoadNode</a> </td></tr>
+<tr id="row_2_6_19_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1BufferLoadNode.html" target="_self">BufferLoadNode</a></td><td class="desc"><a class="el" href="classtvm_1_1tir_1_1Load.html" title="Managed reference to LoadNode. ">Load</a> value from the high dimension buffer </td></tr>
+<tr id="row_2_6_20_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1BufferNode.html" target="_self">BufferNode</a></td><td class="desc">Node to represent a buffer </td></tr>
+<tr id="row_2_6_21_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1BufferRealize.html" target="_self">BufferRealize</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1BufferRealizeNode.html" title="Annotate the region where the buffer need to be read and write in the body. We only need to allocate ...">BufferR [...]
+<tr id="row_2_6_22_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1BufferRealizeNode.html" target="_self">BufferRealizeNode</a></td><td class="desc">Annotate the region where the buffer need to be read and write in the body. We only need to allocate the space for the corresponding region </td></tr>
+<tr id="row_2_6_23_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1BufferStore.html" target="_self">BufferStore</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1BufferStoreNode.html" title="Store value to the high dimension buffer. ">BufferStoreNode</a> </td></tr>
+<tr id="row_2_6_24_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1BufferStoreNode.html" target="_self">BufferStoreNode</a></td><td class="desc"><a class="el" href="classtvm_1_1tir_1_1Store.html" title="Managed reference to StoreNode. ">Store</a> value to the high dimension buffer </td></tr>
+<tr id="row_2_6_25_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1Call.html" target="_self">Call</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1CallNode.html" title="Call node. ">CallNode</a> </td></tr>
+<tr id="row_2_6_26_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1CallNode.html" target="_self">CallNode</a></td><td class="desc"><a class="el" href="classtvm_1_1tir_1_1Call.html" title="Managed reference to CallNode. ">Call</a> node </td></tr>
+<tr id="row_2_6_27_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1Cast.html" target="_self">Cast</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1CastNode.html" title="Cast value from one data type to another. ">CastNode</a> </td></tr>
+<tr id="row_2_6_28_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1CastNode.html" target="_self">CastNode</a></td><td class="desc"><a class="el" href="classtvm_1_1tir_1_1Cast.html" title="Managed reference to CastNode. ">Cast</a> value from one data type to another </td></tr>
+<tr id="row_2_6_29_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1CmpOpNode.html" target="_self">CmpOpNode</a></td><td class="desc">Base template to implement comparison ops </td></tr>
+<tr id="row_2_6_30_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1CommReducer.html" target="_self">CommReducer</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1CommReducerNode.html" title="A commutative reducer node to represent a commutative binary operator with identity element...">CommReducerNode</a> </td></tr>
+<tr id="row_2_6_31_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1CommReducerNode.html" target="_self">CommReducerNode</a></td><td class="desc">A commutative reducer node to represent a commutative binary operator with identity element </td></tr>
+<tr id="row_2_6_32_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1DataProducer.html" target="_self">DataProducer</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1DataProducerNode.html" title="Base node for data producers. ">DataProducerNode</a> </td></tr>
+<tr id="row_2_6_33_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1DataProducerNode.html" target="_self">DataProducerNode</a></td><td class="desc">Base node for data producers </td></tr>
+<tr id="row_2_6_34_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1Div.html" target="_self">Div</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1DivNode.html" title="a / b in the C semnatics. ">DivNode</a> </td></tr>
+<tr id="row_2_6_35_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1DivNode.html" target="_self">DivNode</a></td><td class="desc">/ b in the C semnatics </td></tr>
+<tr id="row_2_6_36_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1EQ.html" target="_self">EQ</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1EQNode.html" title="a == b ">EQNode</a> </td></tr>
+<tr id="row_2_6_37_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1EQNode.html" target="_self">EQNode</a></td><td class="desc">== b </td></tr>
+<tr id="row_2_6_38_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1Evaluate.html" target="_self">Evaluate</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1EvaluateNode.html" title="Evaluates an expression. This is mostly used for putting a Call node into Stmt. ">EvaluateNode</a> </td></tr>
+<tr id="row_2_6_39_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1EvaluateNode.html" target="_self">EvaluateNode</a></td><td class="desc">Evaluates an expression. This is mostly used for putting a <a class="el" href="classtvm_1_1tir_1_1Call.html" title="Managed reference to CallNode. ">Call</a> node into <a class="el" href="classtvm_1_1tir_1_ [...]
+<tr id="row_2_6_40_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1tir_1_1ExprDeepEqual.html" target="_self">ExprDeepEqual</a></td><td class="desc">Compare two expressions recursively and check if they are equal to each other without var remapping </td></tr>
+<tr id="row_2_6_41_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1ExprFunctor.html" target="_self">ExprFunctor</a></td><td class="desc">A dynamical functor that dispatches on in the first Expr argument. You can use this as a more powerful Visitor, since it allows you to define function signatures of Visit Function </td></tr>
+<tr id="row_2_6_42_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1ExprFunctor_3_01R_07const_01PrimExpr_01_6n_00_01Args_8_8_8_08_4.html" target="_self">ExprFunctor&lt; R(const PrimExpr &amp;n, Args...)&gt;</a></td><td class="desc"></td></tr>
+<tr id="row_2_6_43_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1ExprMutator.html" target="_self">ExprMutator</a></td><td class="desc"><a class="el" href="classtvm_1_1tir_1_1ExprMutator.html" title="ExprMutator that mutates expressions. ">ExprMutator</a> that mutates expressions </td></tr>
+<tr id="row_2_6_44_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1ExprVisitor.html" target="_self">ExprVisitor</a></td><td class="desc"><a class="el" href="classtvm_1_1tir_1_1ExprVisitor.html" title="ExprVisitor. ">ExprVisitor</a> </td></tr>
+<tr id="row_2_6_45_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1FloorDiv.html" target="_self">FloorDiv</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1FloorDivNode.html" title="Floor division, floor(a/b) ">FloorDivNode</a> </td></tr>
+<tr id="row_2_6_46_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1FloorDivNode.html" target="_self">FloorDivNode</a></td><td class="desc">Floor division, floor(a/b) </td></tr>
+<tr id="row_2_6_47_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1FloorMod.html" target="_self">FloorMod</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1FloorModNode.html" title="The remainder of the floordiv. ">FloorModNode</a> </td></tr>
+<tr id="row_2_6_48_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1FloorModNode.html" target="_self">FloorModNode</a></td><td class="desc">The remainder of the floordiv </td></tr>
+<tr id="row_2_6_49_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1For.html" target="_self">For</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1ForNode.html" title="A for loop, with poissible type annotations. ">ForNode</a> </td></tr>
+<tr id="row_2_6_50_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1ForNode.html" target="_self">ForNode</a></td><td class="desc">A for loop, with poissible type annotations </td></tr>
+<tr id="row_2_6_51_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1GE.html" target="_self">GE</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1GENode.html" title="a &gt;= b ">GENode</a> </td></tr>
+<tr id="row_2_6_52_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1GENode.html" target="_self">GENode</a></td><td class="desc">&gt;= b </td></tr>
+<tr id="row_2_6_53_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1GT.html" target="_self">GT</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1GTNode.html" title="a &gt; b ">GTNode</a> </td></tr>
+<tr id="row_2_6_54_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1GTNode.html" target="_self">GTNode</a></td><td class="desc">&gt; b </td></tr>
+<tr id="row_2_6_55_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1IfThenElse.html" target="_self">IfThenElse</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1IfThenElseNode.html" title="IfThenElse statment. ">IfThenElseNode</a> </td></tr>
+<tr id="row_2_6_56_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1IfThenElseNode.html" target="_self">IfThenElseNode</a></td><td class="desc"><a class="el" href="classtvm_1_1tir_1_1IfThenElse.html" title="Managed reference to IfThenElseNode. ">IfThenElse</a> statment </td></tr>
+<tr id="row_2_6_57_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1IterVar.html" target="_self">IterVar</a></td><td class="desc">Iteration Variable, represents an iteration over an integer interval </td></tr>
+<tr id="row_2_6_58_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1IterVarNode.html" target="_self">IterVarNode</a></td><td class="desc">An iteration variable representing an iteration over a one dimensional interval </td></tr>
+<tr id="row_2_6_59_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1Layout.html" target="_self">Layout</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1LayoutNode.html" title="Layout is to describe how data is organized within an N-dimention tensor. It is composed of upper cas...">LayoutNode</a> </td></tr>
+<tr id="row_2_6_60_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1LayoutAxis.html" target="_self">LayoutAxis</a></td><td class="desc"></td></tr>
+<tr id="row_2_6_61_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1LayoutNode.html" target="_self">LayoutNode</a></td><td class="desc"><a class="el" href="classtvm_1_1tir_1_1Layout.html" title="Managed reference to LayoutNode. ">Layout</a> is to describe how data is organized within an N-dimention tensor. It is composed of upper cases, lower c [...]
+<tr id="row_2_6_62_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1LE.html" target="_self">LE</a></td><td class="desc">Managed reference to <a class="el" href="structtvm_1_1tir_1_1LENode.html" title="a &lt;= b ">LENode</a> </td></tr>
+<tr id="row_2_6_63_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1tir_1_1LENode.html" target="_self">LENode</a></td><td class="desc">&lt;= b </td></tr>
+<tr id="row_2_6_64_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1Let.html" target="_self">Let</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1LetNode.html" title="Let binding. Bind var to value then evaluate body. ">LetNode</a> </td></tr>
+<tr id="row_2_6_65_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1LetNode.html" target="_self">LetNode</a></td><td class="desc"><a class="el" href="classtvm_1_1tir_1_1Let.html" title="Managed reference to LetNode. ">Let</a> binding. Bind var to value then evaluate body </td></tr>
+<tr id="row_2_6_66_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1LetStmt.html" target="_self">LetStmt</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1LetStmtNode.html" title="Let binding, bind var to value, then run body. ">LetStmtNode</a> </td></tr>
+<tr id="row_2_6_67_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1LetStmtNode.html" target="_self">LetStmtNode</a></td><td class="desc"><a class="el" href="classtvm_1_1tir_1_1Let.html" title="Managed reference to LetNode. ">Let</a> binding, bind var to value, then run body </td></tr>
+<tr id="row_2_6_68_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1Load.html" target="_self">Load</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1LoadNode.html" title="Load the value from buffer_var. ">LoadNode</a> </td></tr>
+<tr id="row_2_6_69_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1LoadNode.html" target="_self">LoadNode</a></td><td class="desc"><a class="el" href="classtvm_1_1tir_1_1Load.html" title="Managed reference to LoadNode. ">Load</a> the value from buffer_var </td></tr>
+<tr id="row_2_6_70_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1LT.html" target="_self">LT</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1LTNode.html" title="a &lt; b ">LTNode</a> </td></tr>
+<tr id="row_2_6_71_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1LTNode.html" target="_self">LTNode</a></td><td class="desc">&lt; b </td></tr>
+<tr id="row_2_6_72_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1Max.html" target="_self">Max</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1MaxNode.html" title="max(a, b) ">MaxNode</a> </td></tr>
+<tr id="row_2_6_73_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1MaxNode.html" target="_self">MaxNode</a></td><td class="desc">Max(a, b) </td></tr>
+<tr id="row_2_6_74_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1Min.html" target="_self">Min</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1MinNode.html" title="min(a, b) ">MinNode</a> </td></tr>
+<tr id="row_2_6_75_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1MinNode.html" target="_self">MinNode</a></td><td class="desc">Min(a, b) </td></tr>
+<tr id="row_2_6_76_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1Mod.html" target="_self">Mod</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1ModNode.html" title="a % b in the C semnatics. ">ModNode</a> </td></tr>
+<tr id="row_2_6_77_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1ModNode.html" target="_self">ModNode</a></td><td class="desc">% b in the C semnatics </td></tr>
+<tr id="row_2_6_78_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1Mul.html" target="_self">Mul</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1MulNode.html" title="a * b ">MulNode</a> </td></tr>
+<tr id="row_2_6_79_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1MulNode.html" target="_self">MulNode</a></td><td class="desc"><ul>
 <li>b </li>
 </ul>
 </td></tr>
-<tr id="row_2_5_80_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1NE.html" target="_self">NE</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1NENode.html" title="a != b ">NENode</a> </td></tr>
-<tr id="row_2_5_81_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1NENode.html" target="_self">NENode</a></td><td class="desc">!= b </td></tr>
-<tr id="row_2_5_82_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1Not.html" target="_self">Not</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1NotNode.html" title="!a ">NotNode</a> </td></tr>
-<tr id="row_2_5_83_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1NotNode.html" target="_self">NotNode</a></td><td class="desc">!a </td></tr>
-<tr id="row_2_5_84_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1Or.html" target="_self">Or</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1OrNode.html" title="a || b ">OrNode</a> </td></tr>
-<tr id="row_2_5_85_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1OrNode.html" target="_self">OrNode</a></td><td class="desc">|| b </td></tr>
-<tr id="row_2_5_86_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1Prefetch.html" target="_self">Prefetch</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1PrefetchNode.html" title="A prefetch hint for abuffer. ">PrefetchNode</a> </td></tr>
-<tr id="row_2_5_87_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1PrefetchNode.html" target="_self">PrefetchNode</a></td><td class="desc">A prefetch hint for abuffer </td></tr>
-<tr id="row_2_5_88_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1PrimFunc.html" target="_self">PrimFunc</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1PrimFuncNode.html" title="Primitive functions that contains TIR statements. ">PrimFuncNode</a> </td></tr>
-<tr id="row_2_5_89_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1PrimFuncNode.html" target="_self">PrimFuncNode</a></td><td class="desc">Primitive functions that contains TIR statements </td></tr>
-<tr id="row_2_5_90_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1ProducerLoad.html" target="_self">ProducerLoad</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1ProducerLoadNode.html" title="Load value from the result produced by the producer. ">ProducerLoadNode</a> </td></tr>
-<tr id="row_2_5_91_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1ProducerLoadNode.html" target="_self">ProducerLoadNode</a></td><td class="desc"><a class="el" href="classtvm_1_1tir_1_1Load.html" title="Managed reference to LoadNode. ">Load</a> value from the result produced by the producer </td></tr>
-<tr id="row_2_5_92_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1ProducerRealize.html" target="_self">ProducerRealize</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1ProducerRealizeNode.html" title="Annotate the bounds where the data produced by the producer need to be written and read in body...">Produce [...]
-<tr id="row_2_5_93_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1ProducerRealizeNode.html" target="_self">ProducerRealizeNode</a></td><td class="desc">Annotate the bounds where the data produced by the producer need to be written and read in body. We will need to allocate space for the corresponding regions </td></tr>
-<tr id="row_2_5_94_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1ProducerStore.html" target="_self">ProducerStore</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1ProducerStoreNode.html" title="Store value into mult-dimensional array that will be read by the consumer of the producer. ">ProducerStoreNode</a [...]
-<tr id="row_2_5_95_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1ProducerStoreNode.html" target="_self">ProducerStoreNode</a></td><td class="desc"><a class="el" href="classtvm_1_1tir_1_1Store.html" title="Managed reference to StoreNode. ">Store</a> value into mult-dimensional array that will be read by the consumer of the producer </td></tr>
-<tr id="row_2_5_96_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1Ramp.html" target="_self">Ramp</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1RampNode.html" title="Construct a vector with lanes elements where its i-th element equals base + i * stride. This is useful to construct a index for a continuous [...]
-<tr id="row_2_5_97_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1RampNode.html" target="_self">RampNode</a></td><td class="desc">Construct a vector with lanes elements where its i-th element equals base + i * stride. This is useful to construct a index for a continuous vector load </td></tr>
-<tr id="row_2_5_98_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1Reduce.html" target="_self">Reduce</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1ReduceNode.html" title="Reduction operator operator. ">ReduceNode</a> </td></tr>
-<tr id="row_2_5_99_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1ReduceNode.html" target="_self">ReduceNode</a></td><td class="desc">Reduction operator operator </td></tr>
-<tr id="row_2_5_100_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1Select.html" target="_self">Select</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1SelectNode.html" title="return true_value if condition is true, otherwise return false_value. ">SelectNode</a> </td></tr>
-<tr id="row_2_5_101_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1SelectNode.html" target="_self">SelectNode</a></td><td class="desc">Return true_value if condition is true, otherwise return false_value </td></tr>
-<tr id="row_2_5_102_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_2_5_102_" class="arrow" onclick="toggleFolder('2_5_102_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1SeqStmt.html" target="_self">SeqStmt</a></td><td class="desc">Sequence statement </td></tr>
-<tr id="row_2_5_102_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1SeqStmt_1_1Flattener.html" target="_self">Flattener</a></td><td class="desc">Helper class to flatten sequence of arguments into Array </td></tr>
-<tr id="row_2_5_103_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1SeqStmtNode.html" target="_self">SeqStmtNode</a></td><td class="desc">The container of seq statement. Represent a sequence of statements </td></tr>
-<tr id="row_2_5_104_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1Shuffle.html" target="_self">Shuffle</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1ShuffleNode.html" title="Shuffle instruction. vec = concat(vectors) result = (vec[indices[0]], vec[indices[1]] ...">ShuffleNode</a> </td></tr>
-<tr id="row_2_5_105_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1ShuffleNode.html" target="_self">ShuffleNode</a></td><td class="desc"><a class="el" href="classtvm_1_1tir_1_1Shuffle.html" title="Managed reference to ShuffleNode. ">Shuffle</a> instruction. vec = concat(vectors) result = (vec[indices[0]], vec[indices[1]] ...) </td></tr>
-<tr id="row_2_5_106_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1SizeVar.html" target="_self">SizeVar</a></td><td class="desc">Named variable represents a tensor index size </td></tr>
-<tr id="row_2_5_107_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1SizeVarNode.html" target="_self">SizeVarNode</a></td><td class="desc">A variable node represent a tensor index size, whose value must be non-negative </td></tr>
-<tr id="row_2_5_108_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1Stmt.html" target="_self">Stmt</a></td><td class="desc">Container of all statements </td></tr>
-<tr id="row_2_5_109_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1StmtExprMutator.html" target="_self">StmtExprMutator</a></td><td class="desc">Mutator that recursively mutates stmts and exprs on them </td></tr>
-<tr id="row_2_5_110_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1StmtExprVisitor.html" target="_self">StmtExprVisitor</a></td><td class="desc">Visitor that recursively visit stmts and exprs on them </td></tr>
-<tr id="row_2_5_111_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1StmtFunctor.html" target="_self">StmtFunctor</a></td><td class="desc">Same as <a class="el" href="classtvm_1_1tir_1_1ExprFunctor.html" title="A dynamical functor that dispatches on in the first Expr argument. You can use this as a more powerfu...">ExprFunctor</a> except it is  [...]
-<tr id="row_2_5_112_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1StmtFunctor_3_01R_07const_01Stmt_01_6n_00_01Args_8_8_8args_08_4.html" target="_self">StmtFunctor&lt; R(const Stmt &amp;n, Args...args)&gt;</a></td><td class="desc"></td></tr>
-<tr id="row_2_5_113_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1StmtMutator.html" target="_self">StmtMutator</a></td><td class="desc"><a class="el" href="classtvm_1_1tir_1_1StmtMutator.html" title="StmtMutator that mutates the statements. ">StmtMutator</a> that mutates the statements </td></tr>
-<tr id="row_2_5_114_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1StmtNode.html" target="_self">StmtNode</a></td><td class="desc">Base node of all statements </td></tr>
-<tr id="row_2_5_115_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1StmtVisitor.html" target="_self">StmtVisitor</a></td><td class="desc"><a class="el" href="classtvm_1_1tir_1_1StmtVisitor.html" title="StmtVisitor. ">StmtVisitor</a> </td></tr>
-<tr id="row_2_5_116_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1Store.html" target="_self">Store</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1StoreNode.html" title="Store value to the buffer. ">StoreNode</a> </td></tr>
-<tr id="row_2_5_117_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1StoreNode.html" target="_self">StoreNode</a></td><td class="desc"><a class="el" href="classtvm_1_1tir_1_1Store.html" title="Managed reference to StoreNode. ">Store</a> value to the buffer </td></tr>
-<tr id="row_2_5_118_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1StringImm.html" target="_self">StringImm</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1StringImmNode.html" title="String constants, only used in asserts. ">StringImmNode</a> </td></tr>
-<tr id="row_2_5_119_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1StringImmNode.html" target="_self">StringImmNode</a></td><td class="desc">String constants, only used in asserts </td></tr>
-<tr id="row_2_5_120_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1Sub.html" target="_self">Sub</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1SubNode.html" title="a - b ">SubNode</a> </td></tr>
-<tr id="row_2_5_121_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1SubNode.html" target="_self">SubNode</a></td><td class="desc"><ul>
+<tr id="row_2_6_80_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1NE.html" target="_self">NE</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1NENode.html" title="a != b ">NENode</a> </td></tr>
+<tr id="row_2_6_81_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1NENode.html" target="_self">NENode</a></td><td class="desc">!= b </td></tr>
+<tr id="row_2_6_82_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1Not.html" target="_self">Not</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1NotNode.html" title="!a ">NotNode</a> </td></tr>
+<tr id="row_2_6_83_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1NotNode.html" target="_self">NotNode</a></td><td class="desc">!a </td></tr>
+<tr id="row_2_6_84_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1Or.html" target="_self">Or</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1OrNode.html" title="a || b ">OrNode</a> </td></tr>
+<tr id="row_2_6_85_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1OrNode.html" target="_self">OrNode</a></td><td class="desc">|| b </td></tr>
+<tr id="row_2_6_86_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1Prefetch.html" target="_self">Prefetch</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1PrefetchNode.html" title="A prefetch hint for abuffer. ">PrefetchNode</a> </td></tr>
+<tr id="row_2_6_87_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1PrefetchNode.html" target="_self">PrefetchNode</a></td><td class="desc">A prefetch hint for abuffer </td></tr>
+<tr id="row_2_6_88_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1PrimFunc.html" target="_self">PrimFunc</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1PrimFuncNode.html" title="Primitive functions that contains TIR statements. ">PrimFuncNode</a> </td></tr>
+<tr id="row_2_6_89_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1PrimFuncNode.html" target="_self">PrimFuncNode</a></td><td class="desc">Primitive functions that contains TIR statements </td></tr>
+<tr id="row_2_6_90_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1ProducerLoad.html" target="_self">ProducerLoad</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1ProducerLoadNode.html" title="Load value from the result produced by the producer. ">ProducerLoadNode</a> </td></tr>
+<tr id="row_2_6_91_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1ProducerLoadNode.html" target="_self">ProducerLoadNode</a></td><td class="desc"><a class="el" href="classtvm_1_1tir_1_1Load.html" title="Managed reference to LoadNode. ">Load</a> value from the result produced by the producer </td></tr>
+<tr id="row_2_6_92_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1ProducerRealize.html" target="_self">ProducerRealize</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1ProducerRealizeNode.html" title="Annotate the bounds where the data produced by the producer need to be written and read in body...">Produce [...]
+<tr id="row_2_6_93_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1ProducerRealizeNode.html" target="_self">ProducerRealizeNode</a></td><td class="desc">Annotate the bounds where the data produced by the producer need to be written and read in body. We will need to allocate space for the corresponding regions </td></tr>
+<tr id="row_2_6_94_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1ProducerStore.html" target="_self">ProducerStore</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1ProducerStoreNode.html" title="Store value into mult-dimensional array that will be read by the consumer of the producer. ">ProducerStoreNode</a [...]
+<tr id="row_2_6_95_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1ProducerStoreNode.html" target="_self">ProducerStoreNode</a></td><td class="desc"><a class="el" href="classtvm_1_1tir_1_1Store.html" title="Managed reference to StoreNode. ">Store</a> value into mult-dimensional array that will be read by the consumer of the producer </td></tr>
+<tr id="row_2_6_96_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1Ramp.html" target="_self">Ramp</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1RampNode.html" title="Construct a vector with lanes elements where its i-th element equals base + i * stride. This is useful to construct a index for a continuous [...]
+<tr id="row_2_6_97_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1RampNode.html" target="_self">RampNode</a></td><td class="desc">Construct a vector with lanes elements where its i-th element equals base + i * stride. This is useful to construct a index for a continuous vector load </td></tr>
+<tr id="row_2_6_98_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1Reduce.html" target="_self">Reduce</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1ReduceNode.html" title="Reduction operator operator. ">ReduceNode</a> </td></tr>
+<tr id="row_2_6_99_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1ReduceNode.html" target="_self">ReduceNode</a></td><td class="desc">Reduction operator operator </td></tr>
+<tr id="row_2_6_100_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1Select.html" target="_self">Select</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1SelectNode.html" title="return true_value if condition is true, otherwise return false_value. ">SelectNode</a> </td></tr>
+<tr id="row_2_6_101_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1SelectNode.html" target="_self">SelectNode</a></td><td class="desc">Return true_value if condition is true, otherwise return false_value </td></tr>
+<tr id="row_2_6_102_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_2_6_102_" class="arrow" onclick="toggleFolder('2_6_102_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1SeqStmt.html" target="_self">SeqStmt</a></td><td class="desc">Sequence statement </td></tr>
+<tr id="row_2_6_102_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1SeqStmt_1_1Flattener.html" target="_self">Flattener</a></td><td class="desc">Helper class to flatten sequence of arguments into Array </td></tr>
+<tr id="row_2_6_103_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1SeqStmtNode.html" target="_self">SeqStmtNode</a></td><td class="desc">The container of seq statement. Represent a sequence of statements </td></tr>
+<tr id="row_2_6_104_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1Shuffle.html" target="_self">Shuffle</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1ShuffleNode.html" title="Shuffle instruction. vec = concat(vectors) result = (vec[indices[0]], vec[indices[1]] ...">ShuffleNode</a> </td></tr>
+<tr id="row_2_6_105_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1ShuffleNode.html" target="_self">ShuffleNode</a></td><td class="desc"><a class="el" href="classtvm_1_1tir_1_1Shuffle.html" title="Managed reference to ShuffleNode. ">Shuffle</a> instruction. vec = concat(vectors) result = (vec[indices[0]], vec[indices[1]] ...) </td></tr>
+<tr id="row_2_6_106_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1SizeVar.html" target="_self">SizeVar</a></td><td class="desc">Named variable represents a tensor index size </td></tr>
+<tr id="row_2_6_107_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1SizeVarNode.html" target="_self">SizeVarNode</a></td><td class="desc">A variable node represent a tensor index size, whose value must be non-negative </td></tr>
+<tr id="row_2_6_108_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1Stmt.html" target="_self">Stmt</a></td><td class="desc">Container of all statements </td></tr>
+<tr id="row_2_6_109_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1StmtExprMutator.html" target="_self">StmtExprMutator</a></td><td class="desc">Mutator that recursively mutates stmts and exprs on them </td></tr>
+<tr id="row_2_6_110_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1StmtExprVisitor.html" target="_self">StmtExprVisitor</a></td><td class="desc">Visitor that recursively visit stmts and exprs on them </td></tr>
+<tr id="row_2_6_111_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1StmtFunctor.html" target="_self">StmtFunctor</a></td><td class="desc">Same as <a class="el" href="classtvm_1_1tir_1_1ExprFunctor.html" title="A dynamical functor that dispatches on in the first Expr argument. You can use this as a more powerfu...">ExprFunctor</a> except it is  [...]
+<tr id="row_2_6_112_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1StmtFunctor_3_01R_07const_01Stmt_01_6n_00_01Args_8_8_8args_08_4.html" target="_self">StmtFunctor&lt; R(const Stmt &amp;n, Args...args)&gt;</a></td><td class="desc"></td></tr>
+<tr id="row_2_6_113_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1StmtMutator.html" target="_self">StmtMutator</a></td><td class="desc"><a class="el" href="classtvm_1_1tir_1_1StmtMutator.html" title="StmtMutator that mutates the statements. ">StmtMutator</a> that mutates the statements </td></tr>
+<tr id="row_2_6_114_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1StmtNode.html" target="_self">StmtNode</a></td><td class="desc">Base node of all statements </td></tr>
+<tr id="row_2_6_115_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1StmtVisitor.html" target="_self">StmtVisitor</a></td><td class="desc"><a class="el" href="classtvm_1_1tir_1_1StmtVisitor.html" title="StmtVisitor. ">StmtVisitor</a> </td></tr>
+<tr id="row_2_6_116_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1Store.html" target="_self">Store</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1StoreNode.html" title="Store value to the buffer. ">StoreNode</a> </td></tr>
+<tr id="row_2_6_117_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1StoreNode.html" target="_self">StoreNode</a></td><td class="desc"><a class="el" href="classtvm_1_1tir_1_1Store.html" title="Managed reference to StoreNode. ">Store</a> value to the buffer </td></tr>
+<tr id="row_2_6_118_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1StringImm.html" target="_self">StringImm</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1StringImmNode.html" title="String constants, only used in asserts. ">StringImmNode</a> </td></tr>
+<tr id="row_2_6_119_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1StringImmNode.html" target="_self">StringImmNode</a></td><td class="desc">String constants, only used in asserts </td></tr>
+<tr id="row_2_6_120_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1Sub.html" target="_self">Sub</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1SubNode.html" title="a - b ">SubNode</a> </td></tr>
+<tr id="row_2_6_121_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1SubNode.html" target="_self">SubNode</a></td><td class="desc"><ul>
 <li>b </li>
 </ul>
 </td></tr>
-<tr id="row_2_5_122_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1Var.html" target="_self">Var</a></td><td class="desc">Named variable in TIR </td></tr>
-<tr id="row_2_5_123_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1VarNode.html" target="_self">VarNode</a></td><td class="desc">A variable node in the IR </td></tr>
-<tr id="row_2_6_" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_2_6_" class="arrow" onclick="toggleFolder('2_6_')">&#9658;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacetvm_1_1transform.html" target="_self">transform</a></td><td class="desc"></td></tr>
-<tr id="row_2_6_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1transform_1_1Pass.html" target="_self">Pass</a></td><td class="desc"></td></tr>
-<tr id="row_2_6_1_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1transform_1_1PassContext.html" target="_self">PassContext</a></td><td class="desc"><a class="el" href="classtvm_1_1transform_1_1PassContext.html" title="PassContext that is used to configure the pass behavior. ">PassContext</a> that is used to configure the pass behavior </td></tr>
-<tr id="row_2_6_2_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1transform_1_1PassContextNode.html" target="_self">PassContextNode</a></td><td class="desc"><a class="el" href="classtvm_1_1transform_1_1PassContextNode.html" title="PassContextNode contains the information that a pass can rely on, such as analysis results...">PassContextNode</a> contai [...]
-<tr id="row_2_6_3_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1transform_1_1PassInfo.html" target="_self">PassInfo</a></td><td class="desc"></td></tr>
-<tr id="row_2_6_4_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1transform_1_1PassInfoNode.html" target="_self">PassInfoNode</a></td><td class="desc">Meta data that will be used to help optimization and analysis </td></tr>
-<tr id="row_2_6_5_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1transform_1_1PassNode.html" target="_self">PassNode</a></td><td class="desc"><a class="el" href="classtvm_1_1transform_1_1PassNode.html" title="PassNode is the base type of differnt types of optimization passes. It is designed as a pure class an...">PassNode</a> is the base type of dif [...]
-<tr id="row_2_6_6_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1transform_1_1Sequential.html" target="_self">Sequential</a></td><td class="desc"></td></tr>
-<tr id="row_2_7_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1AttrError.html" target="_self">AttrError</a></td><td class="desc"><a class="el" href="classtvm_1_1Error.html" title="Custom Error class to be thrown during compilation. ">Error</a> thrown during attribute checking </td></tr>
-<tr id="row_2_8_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrFieldInfo.html" target="_self">AttrFieldInfo</a></td><td class="desc"><a class="el" href="classtvm_1_1AttrFieldInfo.html" title="AttrFieldInfo. ">AttrFieldInfo</a> </td></tr>
-<tr id="row_2_9_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrFieldInfoNode.html" target="_self">AttrFieldInfoNode</a></td><td class="desc">Information about attribute fields in string representations </td></tr>
-<tr id="row_2_10_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrRegistryMap.html" target="_self">AttrRegistryMap</a></td><td class="desc">Map&lt;Key, ValueType&gt; used to store meta-data </td></tr>
-<tr id="row_2_11_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrRegistryMapContainerMap.html" target="_self">AttrRegistryMapContainerMap</a></td><td class="desc">Generic attribute map </td></tr>
-<tr id="row_2_12_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1Attrs.html" target="_self">Attrs</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1BaseAttrsNode.html" title="Base class of all attribute class. ">BaseAttrsNode</a> </td></tr>
-<tr id="row_2_13_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">AttrsNode</a></td><td class="desc">The base class of the all the Use "curiously recurring template pattern" </td></tr>
-<tr id="row_2_14_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrVisitor.html" target="_self">AttrVisitor</a></td><td class="desc">Visitor class for to get the attributesof a AST/IR node. The content is going to be called for each field </td></tr>
-<tr id="row_2_15_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1BaseAttrsNode.html" target="_self">BaseAttrsNode</a></td><td class="desc">Base class of all attribute class </td></tr>
-<tr id="row_2_16_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1BaseExpr.html" target="_self">BaseExpr</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1BaseExprNode.html" title="Base type of all the expressions. ">BaseExprNode</a> </td></tr>
-<tr id="row_2_17_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1BaseExprNode.html" target="_self">BaseExprNode</a></td><td class="desc">Base type of all the expressions </td></tr>
-<tr id="row_2_18_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1BaseFunc.html" target="_self">BaseFunc</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1BaseFuncNode.html" title="Base node of all functions. ">BaseFuncNode</a> </td></tr>
-<tr id="row_2_19_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1BaseFuncNode.html" target="_self">BaseFuncNode</a></td><td class="desc">Base node of all functions </td></tr>
-<tr id="row_2_20_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1BaseTensorType.html" target="_self">BaseTensorType</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1BaseTensorTypeNode.html" title="Base of all Tensor types This container can hold TensorType or GenericTensorType. ...">BaseTensorTypeNode</a> </td></tr>
-<tr id="row_2_21_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1BaseTensorTypeNode.html" target="_self">BaseTensorTypeNode</a></td><td class="desc">Base of all Tensor types This container can hold <a class="el" href="classtvm_1_1TensorType.html" title="Managed reference to TensorTypeNode. ">TensorType</a> or GenericTensorType </td></tr>
-<tr id="row_2_22_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1BaseValueEqual.html" target="_self">BaseValueEqual</a></td><td class="desc">Equality definition of base value class </td></tr>
-<tr id="row_2_23_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1BaseValueHash.html" target="_self">BaseValueHash</a></td><td class="desc">Hash definition of base value classes </td></tr>
-<tr id="row_2_24_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1Bool.html" target="_self">Bool</a></td><td class="desc">Boolean constant </td></tr>
-<tr id="row_2_25_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1Constructor.html" target="_self">Constructor</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1ConstructorNode.html" title="ADT constructor. Constructors compare by pointer equality. ">ConstructorNode</a> </td></tr>
-<tr id="row_2_26_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1ConstructorNode.html" target="_self">ConstructorNode</a></td><td class="desc">ADT constructor. Constructors compare by pointer equality </td></tr>
-<tr id="row_2_27_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1DenseMapNode.html" target="_self">DenseMapNode</a></td><td class="desc">A specialization of hash map that implements the idea of array-based hash map. Another reference implementation can be found [1] </td></tr>
-<tr id="row_2_28_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1DictAttrs.html" target="_self">DictAttrs</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1DictAttrsNode.html" title="Specialized attribute type that is backed by a map. The DictAttrsNode implements the Attrs behavior...">DictAttrsNode</a> </td></tr>
-<tr id="row_2_29_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1DictAttrsNode.html" target="_self">DictAttrsNode</a></td><td class="desc">Specialized attribute type that is backed by a map. The <a class="el" href="classtvm_1_1DictAttrsNode.html" title="Specialized attribute type that is backed by a map. The DictAttrsNode implements the Attrs behavio [...]
-<tr id="row_2_30_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1EnvFunc.html" target="_self">EnvFunc</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1EnvFuncNode.html" title="A serializable function backed by TVM&#39;s global environment. ">EnvFuncNode</a> </td></tr>
-<tr id="row_2_31_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1EnvFuncNode.html" target="_self">EnvFuncNode</a></td><td class="desc">A serializable function backed by TVM's global environment </td></tr>
-<tr id="row_2_32_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1Error.html" target="_self">Error</a></td><td class="desc">Custom <a class="el" href="classtvm_1_1Error.html" title="Custom Error class to be thrown during compilation. ">Error</a> class to be thrown during compilation </td></tr>
-<tr id="row_2_33_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1ErrorBuilder.html" target="_self">ErrorBuilder</a></td><td class="desc">A wrapper around std::stringstream to build error </td></tr>
-<tr id="row_2_34_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1ErrorReporter.html" target="_self">ErrorReporter</a></td><td class="desc">An abstraction around how errors are stored and reported. Designed to be opaque to users, so we can support a robust and simpler error reporting mode, as well as a more complex mode </td></tr>
-<tr id="row_2_35_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1FloatImm.html" target="_self">FloatImm</a></td><td class="desc">Managed reference class to <a class="el" href="classtvm_1_1FloatImmNode.html" title="Constant floating point literals in the program. ">FloatImmNode</a> </td></tr>
-<tr id="row_2_36_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1FloatImmNode.html" target="_self">FloatImmNode</a></td><td class="desc">Constant floating point literals in the program </td></tr>
-<tr id="row_2_37_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1FuncType.html" target="_self">FuncType</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1FuncTypeNode.html" title="Function type. ">FuncTypeNode</a> </td></tr>
-<tr id="row_2_38_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1FuncTypeNode.html" target="_self">FuncTypeNode</a></td><td class="desc">Function type </td></tr>
-<tr id="row_2_39_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1GenericFunc.html" target="_self">GenericFunc</a></td><td class="desc">Generic function that can be specialized on a per-target basis </td></tr>
-<tr id="row_2_40_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1GenericFuncNode.html" target="_self">GenericFuncNode</a></td><td class="desc">Represents a generic function that can be specialized on a per-target basis </td></tr>
-<tr id="row_2_41_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1GlobalTypeVar.html" target="_self">GlobalTypeVar</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1GlobalTypeVarNode.html" title="A global type variable that is used for defining new types or type aliases. ">GlobalTypeVarNode</a> </td></tr>
-<tr id="row_2_42_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1GlobalTypeVarNode.html" target="_self">GlobalTypeVarNode</a></td><td class="desc">A global type variable that is used for defining new types or type aliases </td></tr>
-<tr id="row_2_43_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1GlobalVar.html" target="_self">GlobalVar</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1GlobalVarNode.html" title="Global variable that lives in the top-level module. ">GlobalVarNode</a> </td></tr>
-<tr id="row_2_44_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1GlobalVarNode.html" target="_self">GlobalVarNode</a></td><td class="desc">Global variable that lives in the top-level module </td></tr>
-<tr id="row_2_45_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1IncompleteType.html" target="_self">IncompleteType</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1IncompleteTypeNode.html" title="Intermediate values that is used to indicate incomplete type during type inference. ">IncompleteTypeNode</a> </td></tr>
-<tr id="row_2_46_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1IncompleteTypeNode.html" target="_self">IncompleteTypeNode</a></td><td class="desc">Intermediate values that is used to indicate incomplete type during type inference </td></tr>
-<tr id="row_2_47_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1Integer.html" target="_self">Integer</a></td><td class="desc">Container of constant int that adds more constructors </td></tr>
-<tr id="row_2_48_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1IntImm.html" target="_self">IntImm</a></td><td class="desc">Managed reference class to <a class="el" href="classtvm_1_1IntImmNode.html" title="Constant integer literals in the program. ">IntImmNode</a> </td></tr>
-<tr id="row_2_49_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1IntImmNode.html" target="_self">IntImmNode</a></td><td class="desc">Constant integer literals in the program </td></tr>
-<tr id="row_2_50_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1IRModule.html" target="_self">IRModule</a></td><td class="desc">Managed reference class to <a class="el" href="classtvm_1_1IRModuleNode.html" title="IRModule that holds functions and type definitions. ">IRModuleNode</a> </td></tr>
-<tr id="row_2_51_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1IRModuleNode.html" target="_self">IRModuleNode</a></td><td class="desc"><a class="el" href="classtvm_1_1IRModule.html" title="Managed reference class to IRModuleNode. ">IRModule</a> that holds functions and type definitions </td></tr>
-<tr id="row_2_52_" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_2_52_" class="arrow" onclick="toggleFolder('2_52_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1Map.html" target="_self">Map</a></td><td class="desc"><a class="el" href="classtvm_1_1Map.html" title="Map container of NodeRef-&gt;NodeRef in DSL graph. Map implements copy on write semantics, which means  [...]
-<tr id="row_2_52_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1Map_1_1iterator.html" target="_self">iterator</a></td><td class="desc">Iterator of the hash map </td></tr>
-<tr id="row_2_53_" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_2_53_" class="arrow" onclick="toggleFolder('2_53_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1MapNode.html" target="_self">MapNode</a></td><td class="desc">Shared content of all specializations of hash map </td></tr>
-<tr id="row_2_53_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1MapNode_1_1iterator.html" target="_self">iterator</a></td><td class="desc"></td></tr>
-<tr id="row_2_54_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1MemoryInfo.html" target="_self">MemoryInfo</a></td><td class="desc">Defines memory info </td></tr>
-<tr id="row_2_55_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1MemoryInfoNode.html" target="_self">MemoryInfoNode</a></td><td class="desc">Memory information of special memory region. Use <a class="el" href="classtvm_1_1MemoryInfo.html" title="Defines memory info. ">MemoryInfo</a> as its container type </td></tr>
-<tr id="row_2_56_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1NodeFunctor.html" target="_self">NodeFunctor</a></td><td class="desc">A dynamically dispatched functor on the type of the first argument </td></tr>
-<tr id="row_2_57_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1NodeFunctor_3_01R_07const_01ObjectRef_01_6n_00_01Args_8_8_8_08_4.html" target="_self">NodeFunctor&lt; R(const ObjectRef &amp;n, Args...)&gt;</a></td><td class="desc"></td></tr>
-<tr id="row_2_58_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1Op.html" target="_self">Op</a></td><td class="desc">Managed reference class to <a class="el" href="classtvm_1_1OpNode.html" title="Primitive Op(builtin intrinsics) ">OpNode</a> </td></tr>
-<tr id="row_2_59_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1OpAttrMap.html" target="_self">OpAttrMap</a></td><td class="desc">Map&lt;Op,ValueType&gt; used to store meta-information about <a class="el" href="classtvm_1_1Op.html" title="Managed reference class to OpNode. ">Op</a> </td></tr>
-<tr id="row_2_60_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1OpNode.html" target="_self">OpNode</a></td><td class="desc">Primitive Op(builtin intrinsics) </td></tr>
-<tr id="row_2_61_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1OpRegEntry.html" target="_self">OpRegEntry</a></td><td class="desc">Helper structure to register operators </td></tr>
-<tr id="row_2_62_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1PointerType.html" target="_self">PointerType</a></td><td class="desc"></td></tr>
-<tr id="row_2_63_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1PointerTypeNode.html" target="_self">PointerTypeNode</a></td><td class="desc">Low-level raw pointer type </td></tr>
-<tr id="row_2_64_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1PrimExpr.html" target="_self">PrimExpr</a></td><td class="desc">Reference to <a class="el" href="classtvm_1_1PrimExprNode.html" title="Base node of all primitive expressions. ">PrimExprNode</a> </td></tr>
-<tr id="row_2_65_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1PrimExprNode.html" target="_self">PrimExprNode</a></td><td class="desc">Base node of all primitive expressions </td></tr>
-<tr id="row_2_66_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1PrimType.html" target="_self">PrimType</a></td><td class="desc"></td></tr>
-<tr id="row_2_67_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1PrimTypeNode.html" target="_self">PrimTypeNode</a></td><td class="desc">Primitive data types used in the low-level IR </td></tr>
-<tr id="row_2_68_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1Range.html" target="_self">Range</a></td><td class="desc"><a class="el" href="classtvm_1_1Range.html" title="Range constainer. ">Range</a> constainer </td></tr>
-<tr id="row_2_69_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1RangeNode.html" target="_self">RangeNode</a></td><td class="desc"><a class="el" href="classtvm_1_1Range.html" title="Range constainer. ">Range</a> over one dimension </td></tr>
-<tr id="row_2_70_" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_2_70_" class="arrow" onclick="toggleFolder('2_70_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1ReflectionVTable.html" target="_self">ReflectionVTable</a></td><td class="desc">Virtual function table to support IR/AST node reflection </td></tr>
-<tr id="row_2_70_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1ReflectionVTable_1_1Registry.html" target="_self">Registry</a></td><td class="desc"><a class="el" href="classtvm_1_1ReflectionVTable_1_1Registry.html" title="Registry of a reflection table. ">Registry</a> of a reflection table </td></tr>
-<tr id="row_2_71_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1RelayExpr.html" target="_self">RelayExpr</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1RelayExprNode.html" title="Base node of all non-primitive expressions. ">RelayExprNode</a> </td></tr>
-<tr id="row_2_72_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1RelayExprNode.html" target="_self">RelayExprNode</a></td><td class="desc">Base node of all non-primitive expressions </td></tr>
-<tr id="row_2_73_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1RelayRefType.html" target="_self">RelayRefType</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1RelayRefTypeNode.html" title="Reference Type High-level Relay IR. ">RelayRefTypeNode</a> </td></tr>
-<tr id="row_2_74_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1RelayRefTypeNode.html" target="_self">RelayRefTypeNode</a></td><td class="desc">Reference <a class="el" href="classtvm_1_1Type.html" title="Managed reference to TypeNode. ">Type</a> High-level Relay IR </td></tr>
-<tr id="row_2_75_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1ReprPrinter.html" target="_self">ReprPrinter</a></td><td class="desc">A printer class to print the AST/IR nodes </td></tr>
-<tr id="row_2_76_" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_2_76_" class="arrow" onclick="toggleFolder('2_76_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1SEqualReducer.html" target="_self">SEqualReducer</a></td><td class="desc">A Reducer class to reduce the structural equality result of two objects </td></tr>
-<tr id="row_2_76_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1SEqualReducer_1_1Handler.html" target="_self">Handler</a></td><td class="desc">Internal handler that defines custom behaviors. </td></tr>
-<tr id="row_2_77_" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_2_77_" class="arrow" onclick="toggleFolder('2_77_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1SHashReducer.html" target="_self">SHashReducer</a></td><td class="desc">A Reducer class to reduce the structural hash value </td></tr>
-<tr id="row_2_77_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1SHashReducer_1_1Handler.html" target="_self">Handler</a></td><td class="desc">Internal handler that defines custom behaviors </td></tr>
-<tr id="row_2_78_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1SmallMapNode.html" target="_self">SmallMapNode</a></td><td class="desc">A specialization of small-sized hash map </td></tr>
-<tr id="row_2_79_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1SourceName.html" target="_self">SourceName</a></td><td class="desc">The source name of a file span </td></tr>
-<tr id="row_2_80_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1SourceNameNode.html" target="_self">SourceNameNode</a></td><td class="desc">The name of a source fragment </td></tr>
-<tr id="row_2_81_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1Span.html" target="_self">Span</a></td><td class="desc"></td></tr>
-<tr id="row_2_82_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1SpanNode.html" target="_self">SpanNode</a></td><td class="desc">Stores locations in frontend source that generated a node </td></tr>
-<tr id="row_2_83_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1StructuralEqual.html" target="_self">StructuralEqual</a></td><td class="desc">Content-aware structural equality comparator for objects </td></tr>
-<tr id="row_2_84_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1StructuralHash.html" target="_self">StructuralHash</a></td><td class="desc">Content-aware structural hasing </td></tr>
-<tr id="row_2_85_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1Target.html" target="_self">Target</a></td><td class="desc">Managed reference class to <a class="el" href="classtvm_1_1TargetNode.html" title="Compilation target. ">TargetNode</a> </td></tr>
-<tr id="row_2_86_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TargetId.html" target="_self">TargetId</a></td><td class="desc">Managed reference class to <a class="el" href="classtvm_1_1TargetIdNode.html" title="Target Id, specifies the kind of the target. ">TargetIdNode</a> </td></tr>
-<tr id="row_2_87_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TargetIdAttrMap.html" target="_self">TargetIdAttrMap</a></td><td class="desc">Map&lt;TargetId, ValueType&gt; used to store meta-information about <a class="el" href="classtvm_1_1TargetId.html" title="Managed reference class to TargetIdNode. ">TargetId</a> </td></tr>
-<tr id="row_2_88_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TargetIdNode.html" target="_self">TargetIdNode</a></td><td class="desc"><a class="el" href="classtvm_1_1Target.html" title="Managed reference class to TargetNode. ">Target</a> Id, specifies the kind of the target </td></tr>
-<tr id="row_2_89_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TargetIdRegEntry.html" target="_self">TargetIdRegEntry</a></td><td class="desc">Helper structure to register <a class="el" href="classtvm_1_1TargetId.html" title="Managed reference class to TargetIdNode. ">TargetId</a> </td></tr>
-<tr id="row_2_90_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TargetNode.html" target="_self">TargetNode</a></td><td class="desc">Compilation target </td></tr>
-<tr id="row_2_91_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TensorType.html" target="_self">TensorType</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1TensorTypeNode.html" title="This is the most commonly used type in relay. TensorType have a fixed dimension, data type...">TensorTypeNode</a> </td></tr>
-<tr id="row_2_92_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TensorTypeNode.html" target="_self">TensorTypeNode</a></td><td class="desc">This is the most commonly used type in relay. <a class="el" href="classtvm_1_1TensorType.html" title="Managed reference to TensorTypeNode. ">TensorType</a> have a fixed dimension, data type </td></tr>
-<tr id="row_2_93_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TupleType.html" target="_self">TupleType</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1TupleTypeNode.html" title="The type of tuple values. ">TupleTypeNode</a> </td></tr>
-<tr id="row_2_94_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TupleTypeNode.html" target="_self">TupleTypeNode</a></td><td class="desc">The type of tuple values </td></tr>
-<tr id="row_2_95_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1Type.html" target="_self">Type</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1TypeNode.html" title="Type is the base type of all types. ">TypeNode</a> </td></tr>
-<tr id="row_2_96_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TypeCall.html" target="_self">TypeCall</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1TypeCallNode.html" title="Type function application. ">TypeCallNode</a> </td></tr>
-<tr id="row_2_97_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TypeCallNode.html" target="_self">TypeCallNode</a></td><td class="desc"><a class="el" href="classtvm_1_1Type.html" title="Managed reference to TypeNode. ">Type</a> function application </td></tr>
-<tr id="row_2_98_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TypeConstraint.html" target="_self">TypeConstraint</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1TypeConstraintNode.html" title="Potential Constraints in a function. ">TypeConstraintNode</a> </td></tr>
-<tr id="row_2_99_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TypeConstraintNode.html" target="_self">TypeConstraintNode</a></td><td class="desc">Potential Constraints in a function </td></tr>
-<tr id="row_2_100_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TypeData.html" target="_self">TypeData</a></td><td class="desc">Stores all data for an Algebraic Data <a class="el" href="classtvm_1_1Type.html" title="Managed reference to TypeNode. ">Type</a> (ADT) </td></tr>
-<tr id="row_2_101_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TypeDataNode.html" target="_self">TypeDataNode</a></td><td class="desc"><a class="el" href="classtvm_1_1TypeData.html" title="Stores all data for an Algebraic Data Type (ADT). ">TypeData</a> container node </td></tr>
-<tr id="row_2_102_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TypedEnvFunc.html" target="_self">TypedEnvFunc</a></td><td class="desc">Please refer to <a class="el" href="classtvm_1_1TypedEnvFunc_3_01R_07Args_8_8_8_08_4.html#TypedEnvFuncAnchor">TypedEnvFunc&lt;R(Args..)&gt;</a> </td></tr>
-<tr id="row_2_103_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TypedEnvFunc_3_01R_07Args_8_8_8_08_4.html" target="_self">TypedEnvFunc&lt; R(Args...)&gt;</a></td><td class="desc">A typed version of <a class="el" href="classtvm_1_1EnvFunc.html" title="Managed reference to EnvFuncNode. ">EnvFunc</a>. It is backed by a GlobalFuncNode internally </td></tr>
-<tr id="row_2_104_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TypeFunctor.html" target="_self">TypeFunctor</a></td><td class="desc"></td></tr>
-<tr id="row_2_105_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TypeFunctor_3_01R_07const_01Type_01_6n_00_01Args_8_8_8_08_4.html" target="_self">TypeFunctor&lt; R(const Type &amp;n, Args...)&gt;</a></td><td class="desc"></td></tr>
-<tr id="row_2_106_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TypeMutator.html" target="_self">TypeMutator</a></td><td class="desc"><a class="el" href="classtvm_1_1TypeMutator.html" title="TypeMutator that mutates expressions. ">TypeMutator</a> that mutates expressions </td></tr>
-<tr id="row_2_107_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TypeNode.html" target="_self">TypeNode</a></td><td class="desc"><a class="el" href="classtvm_1_1Type.html" title="Managed reference to TypeNode. ">Type</a> is the base type of all types </td></tr>
-<tr id="row_2_108_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TypeRelation.html" target="_self">TypeRelation</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1TypeRelationNode.html" title="User defined type relation, it is an input-output relation on types. ">TypeRelationNode</a> </td></tr>
-<tr id="row_2_109_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TypeRelationNode.html" target="_self">TypeRelationNode</a></td><td class="desc">User defined type relation, it is an input-output relation on types </td></tr>
-<tr id="row_2_110_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TypeReporter.html" target="_self">TypeReporter</a></td><td class="desc">Container class of <a class="el" href="classtvm_1_1TypeReporter.html" title="Container class of TypeReporter. ">TypeReporter</a> </td></tr>
-<tr id="row_2_111_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TypeReporterNode.html" target="_self">TypeReporterNode</a></td><td class="desc">Reporter that reports back to the type resolution information </td></tr>
-<tr id="row_2_112_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TypeVar.html" target="_self">TypeVar</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1TypeVarNode.html" title="Type parameter in functions. ">TypeVarNode</a> </td></tr>
-<tr id="row_2_113_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TypeVarNode.html" target="_self">TypeVarNode</a></td><td class="desc"><a class="el" href="classtvm_1_1Type.html" title="Managed reference to TypeNode. ">Type</a> parameter in functions </td></tr>
-<tr id="row_2_114_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TypeVisitor.html" target="_self">TypeVisitor</a></td><td class="desc">A type visitor that recursively visit types </td></tr>
-<tr id="row_2_115_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1With.html" target="_self">With</a></td><td class="desc">RAII wrapper function to enter and exit a context object similar to python's with syntax </td></tr>
+<tr id="row_2_6_122_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1Var.html" target="_self">Var</a></td><td class="desc">Named variable in TIR </td></tr>
+<tr id="row_2_6_123_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1VarNode.html" target="_self">VarNode</a></td><td class="desc">A variable node in the IR </td></tr>
+<tr id="row_2_7_" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_2_7_" class="arrow" onclick="toggleFolder('2_7_')">&#9658;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacetvm_1_1transform.html" target="_self">transform</a></td><td class="desc"></td></tr>
+<tr id="row_2_7_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1transform_1_1Pass.html" target="_self">Pass</a></td><td class="desc"></td></tr>
+<tr id="row_2_7_1_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1transform_1_1PassContext.html" target="_self">PassContext</a></td><td class="desc"><a class="el" href="classtvm_1_1transform_1_1PassContext.html" title="PassContext that is used to configure the pass behavior. ">PassContext</a> that is used to configure the pass behavior </td></tr>
+<tr id="row_2_7_2_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1transform_1_1PassContextNode.html" target="_self">PassContextNode</a></td><td class="desc"><a class="el" href="classtvm_1_1transform_1_1PassContextNode.html" title="PassContextNode contains the information that a pass can rely on, such as analysis results...">PassContextNode</a> contai [...]
+<tr id="row_2_7_3_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1transform_1_1PassInfo.html" target="_self">PassInfo</a></td><td class="desc"></td></tr>
+<tr id="row_2_7_4_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1transform_1_1PassInfoNode.html" target="_self">PassInfoNode</a></td><td class="desc">Meta data that will be used to help optimization and analysis </td></tr>
+<tr id="row_2_7_5_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1transform_1_1PassNode.html" target="_self">PassNode</a></td><td class="desc"><a class="el" href="classtvm_1_1transform_1_1PassNode.html" title="PassNode is the base type of differnt types of optimization passes. It is designed as a pure class an...">PassNode</a> is the base type of dif [...]
+<tr id="row_2_7_6_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1transform_1_1Sequential.html" target="_self">Sequential</a></td><td class="desc"></td></tr>
+<tr id="row_2_8_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1AttrError.html" target="_self">AttrError</a></td><td class="desc"><a class="el" href="classtvm_1_1Error.html" title="Custom Error class to be thrown during compilation. ">Error</a> thrown during attribute checking </td></tr>
+<tr id="row_2_9_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrFieldInfo.html" target="_self">AttrFieldInfo</a></td><td class="desc"><a class="el" href="classtvm_1_1AttrFieldInfo.html" title="AttrFieldInfo. ">AttrFieldInfo</a> </td></tr>
+<tr id="row_2_10_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrFieldInfoNode.html" target="_self">AttrFieldInfoNode</a></td><td class="desc">Information about attribute fields in string representations </td></tr>
+<tr id="row_2_11_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrRegistryMap.html" target="_self">AttrRegistryMap</a></td><td class="desc">Map&lt;Key, ValueType&gt; used to store meta-data </td></tr>
+<tr id="row_2_12_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrRegistryMapContainerMap.html" target="_self">AttrRegistryMapContainerMap</a></td><td class="desc">Generic attribute map </td></tr>
+<tr id="row_2_13_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1Attrs.html" target="_self">Attrs</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1BaseAttrsNode.html" title="Base class of all attribute class. ">BaseAttrsNode</a> </td></tr>
+<tr id="row_2_14_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">AttrsNode</a></td><td class="desc">The base class of the all the Use "curiously recurring template pattern" </td></tr>
+<tr id="row_2_15_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrVisitor.html" target="_self">AttrVisitor</a></td><td class="desc">Visitor class for to get the attributesof a AST/IR node. The content is going to be called for each field </td></tr>
+<tr id="row_2_16_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1BaseAttrsNode.html" target="_self">BaseAttrsNode</a></td><td class="desc">Base class of all attribute class </td></tr>
+<tr id="row_2_17_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1BaseExpr.html" target="_self">BaseExpr</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1BaseExprNode.html" title="Base type of all the expressions. ">BaseExprNode</a> </td></tr>
+<tr id="row_2_18_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1BaseExprNode.html" target="_self">BaseExprNode</a></td><td class="desc">Base type of all the expressions </td></tr>
+<tr id="row_2_19_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1BaseFunc.html" target="_self">BaseFunc</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1BaseFuncNode.html" title="Base node of all functions. ">BaseFuncNode</a> </td></tr>
+<tr id="row_2_20_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1BaseFuncNode.html" target="_self">BaseFuncNode</a></td><td class="desc">Base node of all functions </td></tr>
+<tr id="row_2_21_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1BaseTensorType.html" target="_self">BaseTensorType</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1BaseTensorTypeNode.html" title="Base of all Tensor types This container can hold TensorType or GenericTensorType. ...">BaseTensorTypeNode</a> </td></tr>
+<tr id="row_2_22_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1BaseTensorTypeNode.html" target="_self">BaseTensorTypeNode</a></td><td class="desc">Base of all Tensor types This container can hold <a class="el" href="classtvm_1_1TensorType.html" title="Managed reference to TensorTypeNode. ">TensorType</a> or GenericTensorType </td></tr>
+<tr id="row_2_23_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1BaseValueEqual.html" target="_self">BaseValueEqual</a></td><td class="desc">Equality definition of base value class </td></tr>
+<tr id="row_2_24_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1BaseValueHash.html" target="_self">BaseValueHash</a></td><td class="desc">Hash definition of base value classes </td></tr>
+<tr id="row_2_25_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1Bool.html" target="_self">Bool</a></td><td class="desc">Boolean constant </td></tr>
+<tr id="row_2_26_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1Constructor.html" target="_self">Constructor</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1ConstructorNode.html" title="ADT constructor. Constructors compare by pointer equality. ">ConstructorNode</a> </td></tr>
+<tr id="row_2_27_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1ConstructorNode.html" target="_self">ConstructorNode</a></td><td class="desc">ADT constructor. Constructors compare by pointer equality </td></tr>
+<tr id="row_2_28_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1DenseMapNode.html" target="_self">DenseMapNode</a></td><td class="desc">A specialization of hash map that implements the idea of array-based hash map. Another reference implementation can be found [1] </td></tr>
+<tr id="row_2_29_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1DictAttrs.html" target="_self">DictAttrs</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1DictAttrsNode.html" title="Specialized attribute type that is backed by a map. The DictAttrsNode implements the Attrs behavior...">DictAttrsNode</a> </td></tr>
+<tr id="row_2_30_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1DictAttrsNode.html" target="_self">DictAttrsNode</a></td><td class="desc">Specialized attribute type that is backed by a map. The <a class="el" href="classtvm_1_1DictAttrsNode.html" title="Specialized attribute type that is backed by a map. The DictAttrsNode implements the Attrs behavio [...]
+<tr id="row_2_31_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1EnvFunc.html" target="_self">EnvFunc</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1EnvFuncNode.html" title="A serializable function backed by TVM&#39;s global environment. ">EnvFuncNode</a> </td></tr>
+<tr id="row_2_32_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1EnvFuncNode.html" target="_self">EnvFuncNode</a></td><td class="desc">A serializable function backed by TVM's global environment </td></tr>
+<tr id="row_2_33_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1Error.html" target="_self">Error</a></td><td class="desc">Custom <a class="el" href="classtvm_1_1Error.html" title="Custom Error class to be thrown during compilation. ">Error</a> class to be thrown during compilation </td></tr>
+<tr id="row_2_34_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1ErrorBuilder.html" target="_self">ErrorBuilder</a></td><td class="desc">A wrapper around std::stringstream to build error </td></tr>
+<tr id="row_2_35_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1ErrorReporter.html" target="_self">ErrorReporter</a></td><td class="desc">An abstraction around how errors are stored and reported. Designed to be opaque to users, so we can support a robust and simpler error reporting mode, as well as a more complex mode </td></tr>
+<tr id="row_2_36_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1FloatImm.html" target="_self">FloatImm</a></td><td class="desc">Managed reference class to <a class="el" href="classtvm_1_1FloatImmNode.html" title="Constant floating point literals in the program. ">FloatImmNode</a> </td></tr>
+<tr id="row_2_37_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1FloatImmNode.html" target="_self">FloatImmNode</a></td><td class="desc">Constant floating point literals in the program </td></tr>
+<tr id="row_2_38_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1FuncType.html" target="_self">FuncType</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1FuncTypeNode.html" title="Function type. ">FuncTypeNode</a> </td></tr>
+<tr id="row_2_39_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1FuncTypeNode.html" target="_self">FuncTypeNode</a></td><td class="desc">Function type </td></tr>
+<tr id="row_2_40_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1GenericFunc.html" target="_self">GenericFunc</a></td><td class="desc">Generic function that can be specialized on a per-target basis </td></tr>
+<tr id="row_2_41_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1GenericFuncNode.html" target="_self">GenericFuncNode</a></td><td class="desc">Represents a generic function that can be specialized on a per-target basis </td></tr>
+<tr id="row_2_42_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1GlobalTypeVar.html" target="_self">GlobalTypeVar</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1GlobalTypeVarNode.html" title="A global type variable that is used for defining new types or type aliases. ">GlobalTypeVarNode</a> </td></tr>
+<tr id="row_2_43_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1GlobalTypeVarNode.html" target="_self">GlobalTypeVarNode</a></td><td class="desc">A global type variable that is used for defining new types or type aliases </td></tr>
+<tr id="row_2_44_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1GlobalVar.html" target="_self">GlobalVar</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1GlobalVarNode.html" title="Global variable that lives in the top-level module. ">GlobalVarNode</a> </td></tr>
+<tr id="row_2_45_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1GlobalVarNode.html" target="_self">GlobalVarNode</a></td><td class="desc">Global variable that lives in the top-level module </td></tr>
+<tr id="row_2_46_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1IncompleteType.html" target="_self">IncompleteType</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1IncompleteTypeNode.html" title="Intermediate values that is used to indicate incomplete type during type inference. ">IncompleteTypeNode</a> </td></tr>
+<tr id="row_2_47_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1IncompleteTypeNode.html" target="_self">IncompleteTypeNode</a></td><td class="desc">Intermediate values that is used to indicate incomplete type during type inference </td></tr>
+<tr id="row_2_48_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1Integer.html" target="_self">Integer</a></td><td class="desc">Container of constant int that adds more constructors </td></tr>
+<tr id="row_2_49_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1IntImm.html" target="_self">IntImm</a></td><td class="desc">Managed reference class to <a class="el" href="classtvm_1_1IntImmNode.html" title="Constant integer literals in the program. ">IntImmNode</a> </td></tr>
+<tr id="row_2_50_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1IntImmNode.html" target="_self">IntImmNode</a></td><td class="desc">Constant integer literals in the program </td></tr>
+<tr id="row_2_51_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1IRModule.html" target="_self">IRModule</a></td><td class="desc">Managed reference class to <a class="el" href="classtvm_1_1IRModuleNode.html" title="IRModule that holds functions and type definitions. ">IRModuleNode</a> </td></tr>
+<tr id="row_2_52_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1IRModuleNode.html" target="_self">IRModuleNode</a></td><td class="desc"><a class="el" href="classtvm_1_1IRModule.html" title="Managed reference class to IRModuleNode. ">IRModule</a> that holds functions and type definitions </td></tr>
+<tr id="row_2_53_" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_2_53_" class="arrow" onclick="toggleFolder('2_53_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1Map.html" target="_self">Map</a></td><td class="desc"><a class="el" href="classtvm_1_1Map.html" title="Map container of NodeRef-&gt;NodeRef in DSL graph. Map implements copy on write semantics, which means  [...]
+<tr id="row_2_53_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1Map_1_1iterator.html" target="_self">iterator</a></td><td class="desc">Iterator of the hash map </td></tr>
+<tr id="row_2_54_" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_2_54_" class="arrow" onclick="toggleFolder('2_54_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1MapNode.html" target="_self">MapNode</a></td><td class="desc">Shared content of all specializations of hash map </td></tr>
+<tr id="row_2_54_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1MapNode_1_1iterator.html" target="_self">iterator</a></td><td class="desc"></td></tr>
+<tr id="row_2_55_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1MemoryInfo.html" target="_self">MemoryInfo</a></td><td class="desc">Defines memory info </td></tr>
+<tr id="row_2_56_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1MemoryInfoNode.html" target="_self">MemoryInfoNode</a></td><td class="desc">Memory information of special memory region. Use <a class="el" href="classtvm_1_1MemoryInfo.html" title="Defines memory info. ">MemoryInfo</a> as its container type </td></tr>
+<tr id="row_2_57_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1NodeFunctor.html" target="_self">NodeFunctor</a></td><td class="desc">A dynamically dispatched functor on the type of the first argument </td></tr>
+<tr id="row_2_58_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1NodeFunctor_3_01R_07const_01ObjectRef_01_6n_00_01Args_8_8_8_08_4.html" target="_self">NodeFunctor&lt; R(const ObjectRef &amp;n, Args...)&gt;</a></td><td class="desc"></td></tr>
+<tr id="row_2_59_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1Op.html" target="_self">Op</a></td><td class="desc">Managed reference class to <a class="el" href="classtvm_1_1OpNode.html" title="Primitive Op(builtin intrinsics) ">OpNode</a> </td></tr>
+<tr id="row_2_60_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1OpAttrMap.html" target="_self">OpAttrMap</a></td><td class="desc">Map&lt;Op,ValueType&gt; used to store meta-information about <a class="el" href="classtvm_1_1Op.html" title="Managed reference class to OpNode. ">Op</a> </td></tr>
+<tr id="row_2_61_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1OpNode.html" target="_self">OpNode</a></td><td class="desc">Primitive Op(builtin intrinsics) </td></tr>
+<tr id="row_2_62_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1OpRegEntry.html" target="_self">OpRegEntry</a></td><td class="desc">Helper structure to register operators </td></tr>
+<tr id="row_2_63_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1PointerType.html" target="_self">PointerType</a></td><td class="desc"></td></tr>
+<tr id="row_2_64_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1PointerTypeNode.html" target="_self">PointerTypeNode</a></td><td class="desc">Low-level raw pointer type </td></tr>
+<tr id="row_2_65_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1PrimExpr.html" target="_self">PrimExpr</a></td><td class="desc">Reference to <a class="el" href="classtvm_1_1PrimExprNode.html" title="Base node of all primitive expressions. ">PrimExprNode</a> </td></tr>
+<tr id="row_2_66_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1PrimExprNode.html" target="_self">PrimExprNode</a></td><td class="desc">Base node of all primitive expressions </td></tr>
+<tr id="row_2_67_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1PrimType.html" target="_self">PrimType</a></td><td class="desc"></td></tr>
+<tr id="row_2_68_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1PrimTypeNode.html" target="_self">PrimTypeNode</a></td><td class="desc">Primitive data types used in the low-level IR </td></tr>
+<tr id="row_2_69_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1Range.html" target="_self">Range</a></td><td class="desc"><a class="el" href="classtvm_1_1Range.html" title="Range constainer. ">Range</a> constainer </td></tr>
+<tr id="row_2_70_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1RangeNode.html" target="_self">RangeNode</a></td><td class="desc"><a class="el" href="classtvm_1_1Range.html" title="Range constainer. ">Range</a> over one dimension </td></tr>
+<tr id="row_2_71_" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_2_71_" class="arrow" onclick="toggleFolder('2_71_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1ReflectionVTable.html" target="_self">ReflectionVTable</a></td><td class="desc">Virtual function table to support IR/AST node reflection </td></tr>
+<tr id="row_2_71_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1ReflectionVTable_1_1Registry.html" target="_self">Registry</a></td><td class="desc"><a class="el" href="classtvm_1_1ReflectionVTable_1_1Registry.html" title="Registry of a reflection table. ">Registry</a> of a reflection table </td></tr>
+<tr id="row_2_72_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1RelayExpr.html" target="_self">RelayExpr</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1RelayExprNode.html" title="Base node of all non-primitive expressions. ">RelayExprNode</a> </td></tr>
+<tr id="row_2_73_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1RelayExprNode.html" target="_self">RelayExprNode</a></td><td class="desc">Base node of all non-primitive expressions </td></tr>
+<tr id="row_2_74_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1RelayRefType.html" target="_self">RelayRefType</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1RelayRefTypeNode.html" title="Reference Type High-level Relay IR. ">RelayRefTypeNode</a> </td></tr>
+<tr id="row_2_75_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1RelayRefTypeNode.html" target="_self">RelayRefTypeNode</a></td><td class="desc">Reference <a class="el" href="classtvm_1_1Type.html" title="Managed reference to TypeNode. ">Type</a> High-level Relay IR </td></tr>
+<tr id="row_2_76_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1ReprPrinter.html" target="_self">ReprPrinter</a></td><td class="desc">A printer class to print the AST/IR nodes </td></tr>
+<tr id="row_2_77_" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_2_77_" class="arrow" onclick="toggleFolder('2_77_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1SEqualReducer.html" target="_self">SEqualReducer</a></td><td class="desc">A Reducer class to reduce the structural equality result of two objects </td></tr>
+<tr id="row_2_77_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1SEqualReducer_1_1Handler.html" target="_self">Handler</a></td><td class="desc">Internal handler that defines custom behaviors. </td></tr>
+<tr id="row_2_78_" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_2_78_" class="arrow" onclick="toggleFolder('2_78_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1SHashReducer.html" target="_self">SHashReducer</a></td><td class="desc">A Reducer class to reduce the structural hash value </td></tr>
+<tr id="row_2_78_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1SHashReducer_1_1Handler.html" target="_self">Handler</a></td><td class="desc">Internal handler that defines custom behaviors </td></tr>
+<tr id="row_2_79_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1SmallMapNode.html" target="_self">SmallMapNode</a></td><td class="desc">A specialization of small-sized hash map </td></tr>
+<tr id="row_2_80_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1SourceName.html" target="_self">SourceName</a></td><td class="desc">The source name of a file span </td></tr>
+<tr id="row_2_81_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1SourceNameNode.html" target="_self">SourceNameNode</a></td><td class="desc">The name of a source fragment </td></tr>
+<tr id="row_2_82_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1Span.html" target="_self">Span</a></td><td class="desc"></td></tr>
+<tr id="row_2_83_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1SpanNode.html" target="_self">SpanNode</a></td><td class="desc">Stores locations in frontend source that generated a node </td></tr>
+<tr id="row_2_84_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1StructuralEqual.html" target="_self">StructuralEqual</a></td><td class="desc">Content-aware structural equality comparator for objects </td></tr>
+<tr id="row_2_85_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1StructuralHash.html" target="_self">StructuralHash</a></td><td class="desc">Content-aware structural hasing </td></tr>
+<tr id="row_2_86_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1Target.html" target="_self">Target</a></td><td class="desc">Managed reference class to <a class="el" href="classtvm_1_1TargetNode.html" title="Compilation target. ">TargetNode</a> </td></tr>
+<tr id="row_2_87_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TargetId.html" target="_self">TargetId</a></td><td class="desc">Managed reference class to <a class="el" href="classtvm_1_1TargetIdNode.html" title="Target Id, specifies the kind of the target. ">TargetIdNode</a> </td></tr>
+<tr id="row_2_88_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TargetIdAttrMap.html" target="_self">TargetIdAttrMap</a></td><td class="desc">Map&lt;TargetId, ValueType&gt; used to store meta-information about <a class="el" href="classtvm_1_1TargetId.html" title="Managed reference class to TargetIdNode. ">TargetId</a> </td></tr>
+<tr id="row_2_89_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TargetIdNode.html" target="_self">TargetIdNode</a></td><td class="desc"><a class="el" href="classtvm_1_1Target.html" title="Managed reference class to TargetNode. ">Target</a> Id, specifies the kind of the target </td></tr>
+<tr id="row_2_90_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TargetIdRegEntry.html" target="_self">TargetIdRegEntry</a></td><td class="desc">Helper structure to register <a class="el" href="classtvm_1_1TargetId.html" title="Managed reference class to TargetIdNode. ">TargetId</a> </td></tr>
+<tr id="row_2_91_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TargetNode.html" target="_self">TargetNode</a></td><td class="desc">Compilation target </td></tr>
+<tr id="row_2_92_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TensorType.html" target="_self">TensorType</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1TensorTypeNode.html" title="This is the most commonly used type in relay. TensorType have a fixed dimension, data type...">TensorTypeNode</a> </td></tr>
+<tr id="row_2_93_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TensorTypeNode.html" target="_self">TensorTypeNode</a></td><td class="desc">This is the most commonly used type in relay. <a class="el" href="classtvm_1_1TensorType.html" title="Managed reference to TensorTypeNode. ">TensorType</a> have a fixed dimension, data type </td></tr>
+<tr id="row_2_94_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TupleType.html" target="_self">TupleType</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1TupleTypeNode.html" title="The type of tuple values. ">TupleTypeNode</a> </td></tr>
+<tr id="row_2_95_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TupleTypeNode.html" target="_self">TupleTypeNode</a></td><td class="desc">The type of tuple values </td></tr>
+<tr id="row_2_96_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1Type.html" target="_self">Type</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1TypeNode.html" title="Type is the base type of all types. ">TypeNode</a> </td></tr>
+<tr id="row_2_97_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TypeCall.html" target="_self">TypeCall</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1TypeCallNode.html" title="Type function application. ">TypeCallNode</a> </td></tr>
+<tr id="row_2_98_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TypeCallNode.html" target="_self">TypeCallNode</a></td><td class="desc"><a class="el" href="classtvm_1_1Type.html" title="Managed reference to TypeNode. ">Type</a> function application </td></tr>
+<tr id="row_2_99_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TypeConstraint.html" target="_self">TypeConstraint</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1TypeConstraintNode.html" title="Potential Constraints in a function. ">TypeConstraintNode</a> </td></tr>
+<tr id="row_2_100_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TypeConstraintNode.html" target="_self">TypeConstraintNode</a></td><td class="desc">Potential Constraints in a function </td></tr>
+<tr id="row_2_101_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TypeData.html" target="_self">TypeData</a></td><td class="desc">Stores all data for an Algebraic Data <a class="el" href="classtvm_1_1Type.html" title="Managed reference to TypeNode. ">Type</a> (ADT) </td></tr>
+<tr id="row_2_102_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TypeDataNode.html" target="_self">TypeDataNode</a></td><td class="desc"><a class="el" href="classtvm_1_1TypeData.html" title="Stores all data for an Algebraic Data Type (ADT). ">TypeData</a> container node </td></tr>
+<tr id="row_2_103_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TypedEnvFunc.html" target="_self">TypedEnvFunc</a></td><td class="desc">Please refer to <a class="el" href="classtvm_1_1TypedEnvFunc_3_01R_07Args_8_8_8_08_4.html#TypedEnvFuncAnchor">TypedEnvFunc&lt;R(Args..)&gt;</a> </td></tr>
+<tr id="row_2_104_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TypedEnvFunc_3_01R_07Args_8_8_8_08_4.html" target="_self">TypedEnvFunc&lt; R(Args...)&gt;</a></td><td class="desc">A typed version of <a class="el" href="classtvm_1_1EnvFunc.html" title="Managed reference to EnvFuncNode. ">EnvFunc</a>. It is backed by a GlobalFuncNode internally </td></tr>
+<tr id="row_2_105_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TypeFunctor.html" target="_self">TypeFunctor</a></td><td class="desc"></td></tr>
+<tr id="row_2_106_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TypeFunctor_3_01R_07const_01Type_01_6n_00_01Args_8_8_8_08_4.html" target="_self">TypeFunctor&lt; R(const Type &amp;n, Args...)&gt;</a></td><td class="desc"></td></tr>
+<tr id="row_2_107_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TypeMutator.html" target="_self">TypeMutator</a></td><td class="desc"><a class="el" href="classtvm_1_1TypeMutator.html" title="TypeMutator that mutates expressions. ">TypeMutator</a> that mutates expressions </td></tr>
+<tr id="row_2_108_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TypeNode.html" target="_self">TypeNode</a></td><td class="desc"><a class="el" href="classtvm_1_1Type.html" title="Managed reference to TypeNode. ">Type</a> is the base type of all types </td></tr>
+<tr id="row_2_109_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TypeRelation.html" target="_self">TypeRelation</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1TypeRelationNode.html" title="User defined type relation, it is an input-output relation on types. ">TypeRelationNode</a> </td></tr>
+<tr id="row_2_110_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TypeRelationNode.html" target="_self">TypeRelationNode</a></td><td class="desc">User defined type relation, it is an input-output relation on types </td></tr>
+<tr id="row_2_111_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TypeReporter.html" target="_self">TypeReporter</a></td><td class="desc">Container class of <a class="el" href="classtvm_1_1TypeReporter.html" title="Container class of TypeReporter. ">TypeReporter</a> </td></tr>
+<tr id="row_2_112_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TypeReporterNode.html" target="_self">TypeReporterNode</a></td><td class="desc">Reporter that reports back to the type resolution information </td></tr>
+<tr id="row_2_113_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TypeVar.html" target="_self">TypeVar</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1TypeVarNode.html" title="Type parameter in functions. ">TypeVarNode</a> </td></tr>
+<tr id="row_2_114_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TypeVarNode.html" target="_self">TypeVarNode</a></td><td class="desc"><a class="el" href="classtvm_1_1Type.html" title="Managed reference to TypeNode. ">Type</a> parameter in functions </td></tr>
+<tr id="row_2_115_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TypeVisitor.html" target="_self">TypeVisitor</a></td><td class="desc">A type visitor that recursively visit types </td></tr>
+<tr id="row_2_116_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1With.html" target="_self">With</a></td><td class="desc">RAII wrapper function to enter and exit a context object similar to python's with syntax </td></tr>
 <tr id="row_3_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structTVMArgs.html" target="_self">TVMArgs</a></td><td class="desc"></td></tr>
 <tr id="row_4_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structTVMByteArray.html" target="_self">TVMByteArray</a></td><td class="desc">Byte array type used to pass in byte array When kTVMBytes is used as data type </td></tr>
 <tr id="row_5_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structTVMFuncRegistry.html" target="_self">TVMFuncRegistry</a></td><td class="desc">A data structure that facilitates function lookup by C-string name </td></tr>
diff --git a/docs/api/doxygen/attr__registry__map_8h.html b/docs/api/doxygen/attr__registry__map_8h.html
index 31d694a..e079f5e 100644
--- a/docs/api/doxygen/attr__registry__map_8h.html
+++ b/docs/api/doxygen/attr__registry__map_8h.html
@@ -107,7 +107,7 @@ Include dependency graph for attr_registry_map.h:</div>
 </div><div class="textblock"><div class="dynheader">
 This graph shows which files directly or indirectly include this file:</div>
 <div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="attr__registry__map_8h__dep__incl.svg" width="4064" height="842"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
+<div class="center"><iframe scrolling="no" frameborder="0" src="attr__registry__map_8h__dep__incl.svg" width="4314" height="842"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
 </div>
 </div>
 </div>
diff --git a/docs/api/doxygen/attr__registry__map_8h__dep__incl.svg b/docs/api/doxygen/attr__registry__map_8h__dep__incl.svg
index 45683b3..c3b0479 100644
--- a/docs/api/doxygen/attr__registry__map_8h__dep__incl.svg
+++ b/docs/api/doxygen/attr__registry__map_8h__dep__incl.svg
@@ -4,894 +4,884 @@
 <!-- Generated by graphviz version 2.38.0 (20140413.2041)
  -->
 <!-- Title: include/tvm/node/attr_registry_map.h Pages: 1 -->
-<svg width="3048pt" height="631pt"
- viewBox="0.00 0.00 3048.05 631.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<svg width="3235pt" height="631pt"
+ viewBox="0.00 0.00 3234.54 631.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
 <g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 627)">
 <title>include/tvm/node/attr_registry_map.h</title>
-<polygon fill="white" stroke="none" points="-4,4 -4,-627 3044.05,-627 3044.05,4 -4,4"/>
+<polygon fill="white" stroke="none" points="-4,4 -4,-627 3230.54,-627 3230.54,4 -4,4"/>
 <!-- Node1 -->
 <g id="node1" class="node"><title>Node1</title>
-<polygon fill="#bfbfbf" stroke="black" points="2103,-592.5 2103,-622.5 2222,-622.5 2222,-592.5 2103,-592.5"/>
-<text text-anchor="start" x="2111" y="-610.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/node/attr</text>
-<text text-anchor="middle" x="2162.5" y="-599.5" font-family="Helvetica,sans-Serif" font-size="10.00">_registry_map.h</text>
+<polygon fill="#bfbfbf" stroke="black" points="2037,-592.5 2037,-622.5 2156,-622.5 2156,-592.5 2037,-592.5"/>
+<text text-anchor="start" x="2045" y="-610.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/node/attr</text>
+<text text-anchor="middle" x="2096.5" y="-599.5" font-family="Helvetica,sans-Serif" font-size="10.00">_registry_map.h</text>
 </g>
 <!-- Node2 -->
 <g id="node2" class="node"><title>Node2</title>
 <g id="a_node2"><a xlink:href="ir_2op_8h.html" target="_top" xlink:title="Primitive operators(builtin intrinsics) and registry for them. ">
-<polygon fill="white" stroke="black" points="1981,-531 1981,-550 2086,-550 2086,-531 1981,-531"/>
-<text text-anchor="middle" x="2033.5" y="-538" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/ir/op.h</text>
+<polygon fill="white" stroke="black" points="1913,-531 1913,-550 2018,-550 2018,-531 1913,-531"/>
+<text text-anchor="middle" x="1965.5" y="-538" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/ir/op.h</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node2 -->
 <g id="edge1" class="edge"><title>Node1&#45;&gt;Node2</title>
-<path fill="none" stroke="midnightblue" d="M2125.39,-587.803C2100.66,-575.342 2069.33,-559.556 2050.38,-550.007"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2124,-591.022 2134.51,-592.396 2127.15,-584.77 2124,-591.022"/>
+<path fill="none" stroke="midnightblue" d="M2058.82,-587.803C2033.7,-575.342 2001.89,-559.556 1982.64,-550.007"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2057.56,-591.086 2068.07,-592.396 2060.67,-584.816 2057.56,-591.086"/>
 </g>
-<!-- Node46 -->
-<g id="node46" class="node"><title>Node46</title>
-<g id="a_node46"><a xlink:href="target__id_8h.html" target="_top" xlink:title="Target id registry. ">
-<polygon fill="white" stroke="black" points="2239.5,-525.5 2239.5,-555.5 2343.5,-555.5 2343.5,-525.5 2239.5,-525.5"/>
-<text text-anchor="start" x="2247.5" y="-543.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/target</text>
-<text text-anchor="middle" x="2291.5" y="-532.5" font-family="Helvetica,sans-Serif" font-size="10.00">/target_id.h</text>
+<!-- Node45 -->
+<g id="node45" class="node"><title>Node45</title>
+<g id="a_node45"><a xlink:href="target__id_8h.html" target="_top" xlink:title="Target id registry. ">
+<polygon fill="white" stroke="black" points="2175.5,-525.5 2175.5,-555.5 2279.5,-555.5 2279.5,-525.5 2175.5,-525.5"/>
+<text text-anchor="start" x="2183.5" y="-543.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/target</text>
+<text text-anchor="middle" x="2227.5" y="-532.5" font-family="Helvetica,sans-Serif" font-size="10.00">/target_id.h</text>
 </a>
 </g>
 </g>
-<!-- Node1&#45;&gt;Node46 -->
-<g id="edge77" class="edge"><title>Node1&#45;&gt;Node46</title>
-<path fill="none" stroke="midnightblue" d="M2199.51,-587.853C2219.9,-577.576 2244.81,-565.025 2263.56,-555.577"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2197.85,-584.77 2190.49,-592.396 2201,-591.022 2197.85,-584.77"/>
+<!-- Node1&#45;&gt;Node45 -->
+<g id="edge74" class="edge"><title>Node1&#45;&gt;Node45</title>
+<path fill="none" stroke="midnightblue" d="M2134.08,-587.853C2154.79,-577.576 2180.09,-565.025 2199.13,-555.577"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2132.33,-584.816 2124.93,-592.396 2135.44,-591.086 2132.33,-584.816"/>
 </g>
 <!-- Node3 -->
 <g id="node3" class="node"><title>Node3</title>
 <g id="a_node3"><a xlink:href="relay_2expr_8h.html" target="_top" xlink:title="Relay expression language. ">
-<polygon fill="white" stroke="black" points="708,-274 708,-293 839,-293 839,-274 708,-274"/>
-<text text-anchor="middle" x="773.5" y="-281" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/expr.h</text>
+<polygon fill="white" stroke="black" points="1028,-274 1028,-293 1159,-293 1159,-274 1028,-274"/>
+<text text-anchor="middle" x="1093.5" y="-281" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/expr.h</text>
 </a>
 </g>
 </g>
 <!-- Node2&#45;&gt;Node3 -->
 <g id="edge2" class="edge"><title>Node2&#45;&gt;Node3</title>
-<path fill="none" stroke="midnightblue" d="M1981.15,-528.905C1772.73,-486.725 1004.21,-331.191 815.536,-293.007"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1980.72,-532.39 1991.22,-530.943 1982.11,-525.529 1980.72,-532.39"/>
+<path fill="none" stroke="midnightblue" d="M1902.64,-539.309C1813.61,-537.527 1646.48,-528.58 1510.5,-489 1341.34,-439.762 1157.16,-325.599 1106.83,-293.209"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1902.78,-542.812 1912.84,-539.489 1902.91,-535.813 1902.78,-542.812"/>
 </g>
 <!-- Node20 -->
 <g id="node20" class="node"><title>Node20</title>
 <g id="a_node20"><a xlink:href="relay_2op_8h.html" target="_top" xlink:title="Primitive operators(builtin intrinsics). ">
-<polygon fill="white" stroke="black" points="39.5,-207 39.5,-226 161.5,-226 161.5,-207 39.5,-207"/>
-<text text-anchor="middle" x="100.5" y="-214" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/op.h</text>
+<polygon fill="white" stroke="black" points="1159.5,-207 1159.5,-226 1281.5,-226 1281.5,-207 1159.5,-207"/>
+<text text-anchor="middle" x="1220.5" y="-214" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/op.h</text>
 </a>
 </g>
 </g>
 <!-- Node2&#45;&gt;Node20 -->
 <g id="edge36" class="edge"><title>Node2&#45;&gt;Node20</title>
-<path fill="none" stroke="midnightblue" d="M1970.39,-538.218C1668.97,-531.689 390.5,-499.236 390.5,-418.5 390.5,-418.5 390.5,-418.5 390.5,-349.5 390.5,-294.459 215.264,-245.227 137.229,-226.032"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1970.62,-541.724 1980.7,-538.439 1970.77,-534.725 1970.62,-541.724"/>
+<path fill="none" stroke="midnightblue" d="M1902.44,-535.358C1780.54,-525.615 1524.5,-495.933 1524.5,-418.5 1524.5,-418.5 1524.5,-418.5 1524.5,-349.5 1524.5,-292.609 1343.1,-244.846 1260.56,-226.056"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1902.5,-538.874 1912.74,-536.16 1903.04,-531.895 1902.5,-538.874"/>
 </g>
 <!-- Node23 -->
 <g id="node23" class="node"><title>Node23</title>
 <g id="a_node23"><a xlink:href="builtin_8h.html" target="_top" xlink:title="TIR builtin intrinsics. ">
-<polygon fill="white" stroke="black" points="1966,-274 1966,-293 2091,-293 2091,-274 1966,-274"/>
-<text text-anchor="middle" x="2028.5" y="-281" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/tir/builtin.h</text>
+<polygon fill="white" stroke="black" points="2246,-274 2246,-293 2371,-293 2371,-274 2246,-274"/>
+<text text-anchor="middle" x="2308.5" y="-281" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/tir/builtin.h</text>
 </a>
 </g>
 </g>
 <!-- Node2&#45;&gt;Node23 -->
 <g id="edge37" class="edge"><title>Node2&#45;&gt;Node23</title>
-<path fill="none" stroke="midnightblue" d="M2033.13,-520.429C2032.12,-469.121 2029.38,-329.57 2028.67,-293.241"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2029.63,-520.793 2033.33,-530.722 2036.63,-520.656 2029.63,-520.793"/>
+<path fill="none" stroke="midnightblue" d="M2022.99,-528.778C2081.54,-515.283 2171.94,-487.02 2231.5,-433 2276.67,-392.03 2299.55,-318.349 2306.31,-293.193"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2022.16,-525.377 2013.16,-530.974 2023.68,-532.209 2022.16,-525.377"/>
 </g>
 <!-- Node30 -->
 <g id="node30" class="node"><title>Node30</title>
 <g id="a_node30"><a xlink:href="tir_2op_8h.html" target="_top" xlink:title="Common operators defined for Expr. ">
-<polygon fill="white" stroke="black" points="2103,-469.5 2103,-488.5 2212,-488.5 2212,-469.5 2103,-469.5"/>
-<text text-anchor="middle" x="2157.5" y="-476.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/tir/op.h</text>
+<polygon fill="white" stroke="black" points="1911,-469.5 1911,-488.5 2020,-488.5 2020,-469.5 1911,-469.5"/>
+<text text-anchor="middle" x="1965.5" y="-476.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/tir/op.h</text>
 </a>
 </g>
 </g>
 <!-- Node2&#45;&gt;Node30 -->
 <g id="edge44" class="edge"><title>Node2&#45;&gt;Node30</title>
-<path fill="none" stroke="midnightblue" d="M2060.55,-526.521C2084.6,-514.982 2119.06,-498.443 2139.77,-488.509"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2058.77,-523.493 2051.27,-530.975 2061.8,-529.804 2058.77,-523.493"/>
+<path fill="none" stroke="midnightblue" d="M1965.5,-520.817C1965.5,-509.996 1965.5,-496.898 1965.5,-488.509"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1962,-520.975 1965.5,-530.975 1969,-520.975 1962,-520.975"/>
 </g>
 <!-- Node4 -->
 <g id="node4" class="node"><title>Node4</title>
 <g id="a_node4"><a xlink:href="type__functor_8h.html" target="_top" xlink:title="A way to defined arbitrary function signature with dispatch on types. ">
-<polygon fill="white" stroke="black" points="463,-134.5 463,-164.5 568,-164.5 568,-134.5 463,-134.5"/>
-<text text-anchor="start" x="471" y="-152.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/ir/type</text>
-<text text-anchor="middle" x="515.5" y="-141.5" font-family="Helvetica,sans-Serif" font-size="10.00">_functor.h</text>
+<polygon fill="white" stroke="black" points="207,-134.5 207,-164.5 312,-164.5 312,-134.5 207,-134.5"/>
+<text text-anchor="start" x="215" y="-152.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/ir/type</text>
+<text text-anchor="middle" x="259.5" y="-141.5" font-family="Helvetica,sans-Serif" font-size="10.00">_functor.h</text>
 </a>
 </g>
 </g>
 <!-- Node3&#45;&gt;Node4 -->
 <g id="edge3" class="edge"><title>Node3&#45;&gt;Node4</title>
-<path fill="none" stroke="midnightblue" d="M704.7,-271.892C669.911,-264.407 628.066,-252.028 594.5,-232 579.101,-222.812 545.668,-185.495 527.627,-164.689"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="704.282,-275.379 714.782,-273.968 705.694,-268.523 704.282,-275.379"/>
+<path fill="none" stroke="midnightblue" d="M1017.67,-281.671C832.108,-279.075 365.924,-268.917 306.5,-232 281.943,-216.744 268.875,-183.624 263.149,-164.635"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1017.85,-285.174 1027.89,-281.811 1017.94,-278.174 1017.85,-285.174"/>
 </g>
 <!-- Node5 -->
 <g id="node5" class="node"><title>Node5</title>
 <g id="a_node5"><a xlink:href="relay_2adt_8h.html" target="_top" xlink:title="Algebraic data types for Relay. ">
-<polygon fill="white" stroke="black" points="217.5,-207 217.5,-226 343.5,-226 343.5,-207 217.5,-207"/>
-<text text-anchor="middle" x="280.5" y="-214" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/adt.h</text>
+<polygon fill="white" stroke="black" points="325.5,-207 325.5,-226 451.5,-226 451.5,-207 325.5,-207"/>
+<text text-anchor="middle" x="388.5" y="-214" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/adt.h</text>
 </a>
 </g>
 </g>
 <!-- Node3&#45;&gt;Node5 -->
 <g id="edge4" class="edge"><title>Node3&#45;&gt;Node5</title>
-<path fill="none" stroke="midnightblue" d="M697.588,-274.79C614.038,-265.955 475.867,-250.309 357.5,-232 346.342,-230.274 334.325,-228.143 323.18,-226.051"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="697.44,-278.294 707.752,-275.86 698.173,-271.333 697.44,-278.294"/>
+<path fill="none" stroke="midnightblue" d="M1017.49,-279.365C898.331,-273.791 660.474,-260.012 460.5,-232 449.388,-230.443 437.407,-228.244 426.469,-226.027"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1017.46,-282.867 1027.61,-279.831 1017.78,-275.874 1017.46,-282.867"/>
 </g>
 <!-- Node6 -->
 <g id="node6" class="node"><title>Node6</title>
 <g id="a_node6"><a xlink:href="relay_2analysis_8h.html" target="_top" xlink:title="The set of Relay analysis passes written in C++. ">
-<polygon fill="white" stroke="black" points="296,-140 296,-159 445,-159 445,-140 296,-140"/>
-<text text-anchor="middle" x="370.5" y="-147" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/analysis.h</text>
+<polygon fill="white" stroke="black" points="330,-140 330,-159 479,-159 479,-140 330,-140"/>
+<text text-anchor="middle" x="404.5" y="-147" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/analysis.h</text>
 </a>
 </g>
 </g>
 <!-- Node3&#45;&gt;Node6 -->
 <g id="edge9" class="edge"><title>Node3&#45;&gt;Node6</title>
-<path fill="none" stroke="midnightblue" d="M697.724,-282.436C598.895,-280.73 433.411,-271.794 389.5,-232 368.615,-213.073 368.472,-176.028 369.628,-159.195"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="697.906,-285.939 707.958,-282.591 698.012,-278.94 697.906,-285.939"/>
+<path fill="none" stroke="midnightblue" d="M1017.75,-280.346C826.99,-274.553 340.255,-257.349 316.5,-232 290.016,-203.739 348.471,-173.521 382.419,-159.109"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1017.87,-283.851 1027.97,-280.654 1018.08,-276.854 1017.87,-283.851"/>
 </g>
 <!-- Node7 -->
 <g id="node7" class="node"><title>Node7</title>
 <g id="a_node7"><a xlink:href="relay_2expr__functor_8h.html" target="_top" xlink:title="A more powerful visitor which enables defining arbitrary function signatures with type based dispatch...">
-<polygon fill="white" stroke="black" points="155.5,-134.5 155.5,-164.5 277.5,-164.5 277.5,-134.5 155.5,-134.5"/>
-<text text-anchor="start" x="163.5" y="-152.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/expr</text>
-<text text-anchor="middle" x="216.5" y="-141.5" font-family="Helvetica,sans-Serif" font-size="10.00">_functor.h</text>
+<polygon fill="white" stroke="black" points="930.5,-134.5 930.5,-164.5 1052.5,-164.5 1052.5,-134.5 930.5,-134.5"/>
+<text text-anchor="start" x="938.5" y="-152.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/expr</text>
+<text text-anchor="middle" x="991.5" y="-141.5" font-family="Helvetica,sans-Serif" font-size="10.00">_functor.h</text>
 </a>
 </g>
 </g>
 <!-- Node3&#45;&gt;Node7 -->
 <g id="edge19" class="edge"><title>Node3&#45;&gt;Node7</title>
-<path fill="none" stroke="midnightblue" d="M697.896,-278.428C547.717,-269.972 224.794,-249.815 208.5,-232 191.804,-213.745 201.5,-182.655 209.424,-164.61"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="697.788,-281.927 707.968,-278.992 698.18,-274.938 697.788,-281.927"/>
+<path fill="none" stroke="midnightblue" d="M1093.17,-263.543C1091.97,-245.836 1087.85,-219.439 1074.5,-201 1062.83,-184.878 1044.28,-172.889 1027.68,-164.648"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1089.68,-263.908 1093.59,-273.753 1096.67,-263.615 1089.68,-263.908"/>
 </g>
 <!-- Node8 -->
 <g id="node8" class="node"><title>Node8</title>
 <g id="a_node8"><a xlink:href="pattern__functor_8h.html" target="_top" xlink:title="A more powerful visitor on ADT patterns that enables defining arbitrary function signatures with type...">
-<polygon fill="white" stroke="black" points="0,-134.5 0,-164.5 137,-164.5 137,-134.5 0,-134.5"/>
-<text text-anchor="start" x="8" y="-152.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/pattern</text>
-<text text-anchor="middle" x="68.5" y="-141.5" font-family="Helvetica,sans-Serif" font-size="10.00">_functor.h</text>
+<polygon fill="white" stroke="black" points="1071,-134.5 1071,-164.5 1208,-164.5 1208,-134.5 1071,-134.5"/>
+<text text-anchor="start" x="1079" y="-152.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/pattern</text>
+<text text-anchor="middle" x="1139.5" y="-141.5" font-family="Helvetica,sans-Serif" font-size="10.00">_functor.h</text>
 </a>
 </g>
 </g>
 <!-- Node3&#45;&gt;Node8 -->
 <g id="edge34" class="edge"><title>Node3&#45;&gt;Node8</title>
-<path fill="none" stroke="midnightblue" d="M697.715,-283.065C517.565,-283.617 75.363,-280.016 30.5,-232 12.1677,-212.379 35.6232,-182.334 52.9897,-164.728"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="697.919,-286.565 707.906,-283.029 697.893,-279.565 697.919,-286.565"/>
+<path fill="none" stroke="midnightblue" d="M1099.86,-264.245C1109.12,-237.677 1126.12,-188.905 1134.52,-164.783"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1096.5,-263.244 1096.52,-273.839 1103.11,-265.548 1096.5,-263.244"/>
 </g>
 <!-- Node9 -->
 <g id="node9" class="node"><title>Node9</title>
 <g id="a_node9"><a xlink:href="algorithm_8h.html" target="_top" xlink:title="include/tvm/relay/attrs\l/algorithm.h">
-<polygon fill="white" stroke="black" points="943.5,-201.5 943.5,-231.5 1067.5,-231.5 1067.5,-201.5 943.5,-201.5"/>
-<text text-anchor="start" x="951.5" y="-219.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/attrs</text>
-<text text-anchor="middle" x="1005.5" y="-208.5" font-family="Helvetica,sans-Serif" font-size="10.00">/algorithm.h</text>
+<polygon fill="white" stroke="black" points="775.5,-201.5 775.5,-231.5 899.5,-231.5 899.5,-201.5 775.5,-201.5"/>
+<text text-anchor="start" x="783.5" y="-219.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/attrs</text>
+<text text-anchor="middle" x="837.5" y="-208.5" font-family="Helvetica,sans-Serif" font-size="10.00">/algorithm.h</text>
 </a>
 </g>
 </g>
 <!-- Node3&#45;&gt;Node9 -->
 <g id="edge10" class="edge"><title>Node3&#45;&gt;Node9</title>
-<path fill="none" stroke="midnightblue" d="M814.09,-271.128C853.422,-260.108 913.167,-243.369 955.431,-231.528"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="812.993,-267.8 804.308,-273.869 814.881,-274.541 812.993,-267.8"/>
+<path fill="none" stroke="midnightblue" d="M1049.82,-271.408C1006.47,-260.403 939.898,-243.499 892.871,-231.559"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1049.22,-274.867 1059.77,-273.936 1050.94,-268.082 1049.22,-274.867"/>
 </g>
 <!-- Node10 -->
 <g id="node10" class="node"><title>Node10</title>
 <g id="a_node10"><a xlink:href="relay_2attrs_2memory_8h.html" target="_top" xlink:title="Attributes for memory operators. ">
-<polygon fill="white" stroke="black" points="1085.5,-201.5 1085.5,-231.5 1209.5,-231.5 1209.5,-201.5 1085.5,-201.5"/>
-<text text-anchor="start" x="1093.5" y="-219.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/attrs</text>
-<text text-anchor="middle" x="1147.5" y="-208.5" font-family="Helvetica,sans-Serif" font-size="10.00">/memory.h</text>
+<polygon fill="white" stroke="black" points="469.5,-201.5 469.5,-231.5 593.5,-231.5 593.5,-201.5 469.5,-201.5"/>
+<text text-anchor="start" x="477.5" y="-219.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/attrs</text>
+<text text-anchor="middle" x="531.5" y="-208.5" font-family="Helvetica,sans-Serif" font-size="10.00">/memory.h</text>
 </a>
 </g>
 </g>
 <!-- Node3&#45;&gt;Node10 -->
 <g id="edge11" class="edge"><title>Node3&#45;&gt;Node10</title>
-<path fill="none" stroke="midnightblue" d="M838.284,-272.401C899.715,-262.659 994.543,-247.193 1076.5,-232 1079.35,-231.473 1082.25,-230.923 1085.19,-230.359"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="837.673,-268.954 828.343,-273.973 838.767,-275.868 837.673,-268.954"/>
+<path fill="none" stroke="midnightblue" d="M1017.74,-277.048C921.034,-269.552 748.735,-254.396 602.5,-232 599.64,-231.562 596.72,-231.086 593.776,-230.581"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1017.48,-280.538 1027.72,-277.815 1018.01,-273.558 1017.48,-280.538"/>
 </g>
 <!-- Node11 -->
 <g id="node11" class="node"><title>Node11</title>
 <g id="a_node11"><a xlink:href="include_2tvm_2relay_2attrs_2transform_8h.html" target="_top" xlink:title="Transform operators. ">
-<polygon fill="white" stroke="black" points="801.5,-201.5 801.5,-231.5 925.5,-231.5 925.5,-201.5 801.5,-201.5"/>
-<text text-anchor="start" x="809.5" y="-219.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/attrs</text>
-<text text-anchor="middle" x="863.5" y="-208.5" font-family="Helvetica,sans-Serif" font-size="10.00">/transform.h</text>
+<polygon fill="white" stroke="black" points="1299.5,-201.5 1299.5,-231.5 1423.5,-231.5 1423.5,-201.5 1299.5,-201.5"/>
+<text text-anchor="start" x="1307.5" y="-219.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/attrs</text>
+<text text-anchor="middle" x="1361.5" y="-208.5" font-family="Helvetica,sans-Serif" font-size="10.00">/transform.h</text>
 </a>
 </g>
 </g>
 <!-- Node3&#45;&gt;Node11 -->
 <g id="edge12" class="edge"><title>Node3&#45;&gt;Node11</title>
-<path fill="none" stroke="midnightblue" d="M793.785,-267.849C808.808,-257 829.158,-242.303 843.992,-231.589"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="791.695,-265.041 785.638,-273.734 795.794,-270.716 791.695,-265.041"/>
+<path fill="none" stroke="midnightblue" d="M1138.66,-271.547C1184.02,-260.546 1254.09,-243.55 1303.53,-231.559"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1137.71,-268.177 1128.81,-273.936 1139.36,-274.98 1137.71,-268.177"/>
 </g>
 <!-- Node12 -->
 <g id="node12" class="node"><title>Node12</title>
 <g id="a_node12"><a xlink:href="include_2tvm_2relay_2transform_8h.html" target="_top" xlink:title="Relay specific transformation passes. ">
-<polygon fill="white" stroke="black" points="784.5,-140 784.5,-159 942.5,-159 942.5,-140 784.5,-140"/>
-<text text-anchor="middle" x="863.5" y="-147" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/transform.h</text>
+<polygon fill="white" stroke="black" points="1282.5,-140 1282.5,-159 1440.5,-159 1440.5,-140 1282.5,-140"/>
+<text text-anchor="middle" x="1361.5" y="-147" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/transform.h</text>
 </a>
 </g>
 </g>
 <!-- Node3&#45;&gt;Node12 -->
 <g id="edge35" class="edge"><title>Node3&#45;&gt;Node12</title>
-<path fill="none" stroke="midnightblue" d="M774.135,-263.753C775.544,-246.198 779.82,-219.905 792.5,-201 805.391,-181.779 828.234,-167.495 844.529,-159.112"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="770.633,-263.681 773.563,-273.863 777.622,-264.076 770.633,-263.681"/>
+<path fill="none" stroke="midnightblue" d="M1169.2,-282.254C1258.54,-280.165 1399.2,-270.623 1432.5,-232 1455.54,-205.279 1406.45,-173.851 1378.74,-159.04"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1169.03,-278.757 1159.1,-282.463 1169.18,-285.755 1169.03,-278.757"/>
 </g>
 <!-- Node14 -->
 <g id="node14" class="node"><title>Node14</title>
 <g id="a_node14"><a xlink:href="dataflow__pattern_8h.html" target="_top" xlink:title="A pattern language for matching dataflow properties. ">
-<polygon fill="white" stroke="black" points="604,-201.5 604,-231.5 745,-231.5 745,-201.5 604,-201.5"/>
-<text text-anchor="start" x="612" y="-219.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/dataflow</text>
-<text text-anchor="middle" x="674.5" y="-208.5" font-family="Helvetica,sans-Serif" font-size="10.00">_pattern.h</text>
+<polygon fill="white" stroke="black" points="90,-201.5 90,-231.5 231,-231.5 231,-201.5 90,-201.5"/>
+<text text-anchor="start" x="98" y="-219.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/dataflow</text>
+<text text-anchor="middle" x="160.5" y="-208.5" font-family="Helvetica,sans-Serif" font-size="10.00">_pattern.h</text>
 </a>
 </g>
 </g>
 <!-- Node3&#45;&gt;Node14 -->
 <g id="edge15" class="edge"><title>Node3&#45;&gt;Node14</title>
-<path fill="none" stroke="midnightblue" d="M751.648,-268.153C735.08,-257.275 712.429,-242.403 695.959,-231.589"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="749.868,-271.171 760.148,-273.734 753.71,-265.32 749.868,-271.171"/>
+<path fill="none" stroke="midnightblue" d="M1017.48,-280.762C868.783,-276.747 529.172,-264.543 245.5,-232 240.89,-231.471 236.149,-230.858 231.378,-230.188"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1017.77,-284.271 1027.85,-281.037 1017.95,-277.273 1017.77,-284.271"/>
 </g>
 <!-- Node17 -->
 <g id="node17" class="node"><title>Node17</title>
 <g id="a_node17"><a xlink:href="feature_8h.html" target="_top" xlink:title="Detect features used in Expr/Module. ">
-<polygon fill="white" stroke="black" points="1228,-207 1228,-226 1373,-226 1373,-207 1228,-207"/>
-<text text-anchor="middle" x="1300.5" y="-214" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/feature.h</text>
+<polygon fill="white" stroke="black" points="612,-207 612,-226 757,-226 757,-207 612,-207"/>
+<text text-anchor="middle" x="684.5" y="-214" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/feature.h</text>
 </a>
 </g>
 </g>
 <!-- Node3&#45;&gt;Node17 -->
 <g id="edge20" class="edge"><title>Node3&#45;&gt;Node17</title>
-<path fill="none" stroke="midnightblue" d="M849.233,-275.35C937.936,-266.641 1089.21,-250.749 1218.5,-232 1230.38,-230.278 1243.17,-228.148 1255.04,-226.056"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="848.874,-271.868 839.261,-276.324 849.554,-278.835 848.874,-271.868"/>
+<path fill="none" stroke="midnightblue" d="M1025.55,-272.448C959.364,-262.552 855.933,-246.811 766.5,-232 755.232,-230.134 743.11,-228.039 731.734,-226.034"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1025.44,-275.97 1035.85,-273.985 1026.47,-269.046 1025.44,-275.97"/>
 </g>
 <!-- Node18 -->
 <g id="node18" class="node"><title>Node18</title>
 <g id="a_node18"><a xlink:href="relay_2function_8h.html" target="_top" xlink:title="Relay Function. ">
-<polygon fill="white" stroke="black" points="399,-207 399,-226 548,-226 548,-207 399,-207"/>
-<text text-anchor="middle" x="473.5" y="-214" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/function.h</text>
+<polygon fill="white" stroke="black" points="917,-207 917,-226 1066,-226 1066,-207 917,-207"/>
+<text text-anchor="middle" x="991.5" y="-214" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/function.h</text>
 </a>
 </g>
 </g>
 <!-- Node3&#45;&gt;Node18 -->
 <g id="edge21" class="edge"><title>Node3&#45;&gt;Node18</title>
-<path fill="none" stroke="midnightblue" d="M724.129,-271.803C665.093,-259.012 567.459,-237.858 513.116,-226.083"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="723.457,-275.239 733.972,-273.936 724.94,-268.397 723.457,-275.239"/>
+<path fill="none" stroke="midnightblue" d="M1071.17,-268.269C1050.98,-255.403 1021.91,-236.879 1005.04,-226.127"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1069.43,-271.311 1079.74,-273.734 1073.19,-265.408 1069.43,-271.311"/>
 </g>
 <!-- Node19 -->
 <g id="node19" class="node"><title>Node19</title>
 <g id="a_node19"><a xlink:href="interpreter_8h.html" target="_top" xlink:title="An interpreter for Relay. ">
-<polygon fill="white" stroke="black" points="1430,-207 1430,-226 1591,-226 1591,-207 1430,-207"/>
-<text text-anchor="middle" x="1510.5" y="-214" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/interpreter.h</text>
+<polygon fill="white" stroke="black" points="1518,-207 1518,-226 1679,-226 1679,-207 1518,-207"/>
+<text text-anchor="middle" x="1598.5" y="-214" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/interpreter.h</text>
 </a>
 </g>
 </g>
 <!-- Node3&#45;&gt;Node19 -->
 <g id="edge25" class="edge"><title>Node3&#45;&gt;Node19</title>
-<path fill="none" stroke="midnightblue" d="M849.481,-278.323C969.818,-271.304 1211.53,-255.556 1415.5,-232 1429.75,-230.354 1445.15,-228.177 1459.32,-226.013"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="849.053,-274.842 839.272,-278.915 849.458,-281.831 849.053,-274.842"/>
+<path fill="none" stroke="midnightblue" d="M1169.28,-273.83C1251.63,-264.254 1387.05,-248.056 1503.5,-232 1516.72,-230.177 1530.96,-228.077 1544.28,-226.052"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1168.79,-270.364 1159.26,-274.994 1169.6,-277.317 1168.79,-270.364"/>
 </g>
 <!-- Node3&#45;&gt;Node20 -->
 <g id="edge26" class="edge"><title>Node3&#45;&gt;Node20</title>
-<path fill="none" stroke="midnightblue" d="M697.761,-278.701C583.977,-272.408 362.337,-257.875 175.5,-232 164.071,-230.417 151.748,-228.236 140.459,-226.045"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="697.589,-282.197 707.765,-279.249 697.971,-275.207 697.589,-282.197"/>
+<path fill="none" stroke="midnightblue" d="M1119.34,-269.274C1144.5,-256.4 1181.99,-237.209 1203.57,-226.167"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1117.67,-266.197 1110.36,-273.869 1120.86,-272.428 1117.67,-266.197"/>
 </g>
 <!-- Node21 -->
 <g id="node21" class="node"><title>Node21</title>
 <g id="a_node21"><a xlink:href="relay_2op__attr__types_8h.html" target="_top" xlink:title="The Expr and related elements in DataFlow construction. ">
-<polygon fill="white" stroke="black" points="1609,-201.5 1609,-231.5 1722,-231.5 1722,-201.5 1609,-201.5"/>
-<text text-anchor="start" x="1617" y="-219.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/op</text>
-<text text-anchor="middle" x="1665.5" y="-208.5" font-family="Helvetica,sans-Serif" font-size="10.00">_attr_types.h</text>
+<polygon fill="white" stroke="black" points="1697,-201.5 1697,-231.5 1810,-231.5 1810,-201.5 1697,-201.5"/>
+<text text-anchor="start" x="1705" y="-219.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/op</text>
+<text text-anchor="middle" x="1753.5" y="-208.5" font-family="Helvetica,sans-Serif" font-size="10.00">_attr_types.h</text>
 </a>
 </g>
 </g>
 <!-- Node3&#45;&gt;Node21 -->
 <g id="edge30" class="edge"><title>Node3&#45;&gt;Node21</title>
-<path fill="none" stroke="midnightblue" d="M849.349,-281.789C995.298,-279.554 1325.06,-270.3 1599.5,-232 1602.52,-231.578 1605.61,-231.093 1608.72,-230.561"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="849.109,-278.292 839.161,-281.938 849.212,-285.291 849.109,-278.292"/>
+<path fill="none" stroke="midnightblue" d="M1169.62,-279.234C1282.99,-273.647 1502.69,-260.033 1687.5,-232 1690.52,-231.543 1693.6,-231.028 1696.71,-230.474"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1169.13,-275.754 1159.31,-279.734 1169.47,-282.745 1169.13,-275.754"/>
 </g>
 <!-- Node22 -->
 <g id="node22" class="node"><title>Node22</title>
 <g id="a_node22"><a xlink:href="op__strategy_8h.html" target="_top" xlink:title="The Relay operator Strategy and related data structure. ">
-<polygon fill="white" stroke="black" points="1458,-134.5 1458,-164.5 1571,-164.5 1571,-134.5 1458,-134.5"/>
-<text text-anchor="start" x="1466" y="-152.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/op</text>
-<text text-anchor="middle" x="1514.5" y="-141.5" font-family="Helvetica,sans-Serif" font-size="10.00">_strategy.h</text>
+<polygon fill="white" stroke="black" points="1697,-134.5 1697,-164.5 1810,-164.5 1810,-134.5 1697,-134.5"/>
+<text text-anchor="start" x="1705" y="-152.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/op</text>
+<text text-anchor="middle" x="1753.5" y="-141.5" font-family="Helvetica,sans-Serif" font-size="10.00">_strategy.h</text>
 </a>
 </g>
 </g>
 <!-- Node3&#45;&gt;Node22 -->
 <g id="edge33" class="edge"><title>Node3&#45;&gt;Node22</title>
-<path fill="none" stroke="midnightblue" d="M849.282,-281.658C990.149,-279.202 1286.63,-269.587 1381.5,-232 1402.09,-223.844 1402.01,-213.177 1420.5,-201 1441.23,-187.348 1466.02,-174.152 1484.93,-164.674"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="848.944,-278.163 839.004,-281.83 849.061,-285.162 848.944,-278.163"/>
+<path fill="none" stroke="midnightblue" d="M1169.38,-279.251C1242.62,-274.378 1355.89,-262.229 1449.5,-232 1477.69,-222.898 1480.61,-210.977 1508.5,-201 1571.06,-178.62 1646.36,-164.953 1696.82,-157.578"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1169.07,-275.763 1159.31,-279.891 1169.52,-282.749 1169.07,-275.763"/>
 </g>
 <!-- Node5&#45;&gt;Node4 -->
 <g id="edge5" class="edge"><title>Node5&#45;&gt;Node4</title>
-<path fill="none" stroke="midnightblue" d="M321.361,-204.198C361.198,-193.179 421.882,-176.394 464.783,-164.528"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="320.411,-200.829 311.706,-206.869 322.277,-207.576 320.411,-200.829"/>
+<path fill="none" stroke="midnightblue" d="M362.386,-202.342C340.671,-191.4 309.831,-175.86 287.586,-164.652"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="360.864,-205.494 371.37,-206.869 364.014,-199.243 360.864,-205.494"/>
 </g>
 <!-- Node5&#45;&gt;Node6 -->
 <g id="edge6" class="edge"><title>Node5&#45;&gt;Node6</title>
-<path fill="none" stroke="midnightblue" d="M301.175,-200.568C318.94,-187.738 343.936,-169.685 358.555,-159.127"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="298.695,-198.041 292.638,-206.734 302.794,-203.716 298.695,-198.041"/>
+<path fill="none" stroke="midnightblue" d="M393.075,-196.915C396.134,-184.488 400.016,-168.717 402.376,-159.127"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="389.65,-196.187 390.658,-206.734 396.447,-197.86 389.65,-196.187"/>
 </g>
 <!-- Node5&#45;&gt;Node7 -->
 <g id="edge7" class="edge"><title>Node5&#45;&gt;Node7</title>
-<path fill="none" stroke="midnightblue" d="M264.553,-199.304C254.048,-188.635 240.428,-174.802 230.372,-164.589"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="262.359,-202.064 271.869,-206.734 267.347,-197.152 262.359,-202.064"/>
+<path fill="none" stroke="midnightblue" d="M437.258,-204.969C445.01,-203.5 452.957,-202.115 460.5,-201 629.745,-175.979 831.265,-160.771 930.329,-154.244"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="436.373,-201.576 427.232,-206.931 437.718,-208.445 436.373,-201.576"/>
 </g>
 <!-- Node5&#45;&gt;Node8 -->
 <g id="edge8" class="edge"><title>Node5&#45;&gt;Node8</title>
-<path fill="none" stroke="midnightblue" d="M242.72,-203.917C206.773,-192.895 152.628,-176.294 114.253,-164.528"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="241.761,-207.283 252.348,-206.869 243.813,-200.591 241.761,-207.283"/>
+<path fill="none" stroke="midnightblue" d="M435.6,-205.04C443.865,-203.484 452.409,-202.052 460.5,-201 725.857,-166.502 795.893,-197.516 1061.5,-165 1064.51,-164.632 1067.57,-164.22 1070.67,-163.774"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="434.844,-201.621 425.705,-206.983 436.192,-208.49 434.844,-201.621"/>
 </g>
 <!-- Node11&#45;&gt;Node12 -->
 <g id="edge13" class="edge"><title>Node11&#45;&gt;Node12</title>
-<path fill="none" stroke="midnightblue" d="M863.5,-191.25C863.5,-180.017 863.5,-167.377 863.5,-159.195"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="860,-191.396 863.5,-201.396 867,-191.396 860,-191.396"/>
+<path fill="none" stroke="midnightblue" d="M1361.5,-191.25C1361.5,-180.017 1361.5,-167.377 1361.5,-159.195"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1358,-191.396 1361.5,-201.396 1365,-191.396 1358,-191.396"/>
 </g>
 <!-- Node13 -->
 <g id="node13" class="node"><title>Node13</title>
 <g id="a_node13"><a xlink:href="include_2tvm_2relay_2qnn_2transform_8h.html" target="_top" xlink:title="include/tvm/relay/qnn\l/transform.h">
-<polygon fill="white" stroke="black" points="804,-67.5 804,-97.5 923,-97.5 923,-67.5 804,-67.5"/>
-<text text-anchor="start" x="812" y="-85.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/qnn</text>
-<text text-anchor="middle" x="863.5" y="-74.5" font-family="Helvetica,sans-Serif" font-size="10.00">/transform.h</text>
+<polygon fill="white" stroke="black" points="1302,-67.5 1302,-97.5 1421,-97.5 1421,-67.5 1302,-67.5"/>
+<text text-anchor="start" x="1310" y="-85.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/qnn</text>
+<text text-anchor="middle" x="1361.5" y="-74.5" font-family="Helvetica,sans-Serif" font-size="10.00">/transform.h</text>
 </a>
 </g>
 </g>
 <!-- Node12&#45;&gt;Node13 -->
 <g id="edge14" class="edge"><title>Node12&#45;&gt;Node13</title>
-<path fill="none" stroke="midnightblue" d="M863.5,-129.411C863.5,-119.222 863.5,-106.901 863.5,-97.589"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="860,-129.734 863.5,-139.734 867,-129.734 860,-129.734"/>
+<path fill="none" stroke="midnightblue" d="M1361.5,-129.411C1361.5,-119.222 1361.5,-106.901 1361.5,-97.589"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1358,-129.734 1361.5,-139.734 1365,-129.734 1358,-129.734"/>
 </g>
 <!-- Node15 -->
 <g id="node15" class="node"><title>Node15</title>
 <g id="a_node15"><a xlink:href="dataflow__matcher_8h.html" target="_top" xlink:title="A pattern matcher for matching dataflow properties. ">
-<polygon fill="white" stroke="black" points="575,-67.5 575,-97.5 716,-97.5 716,-67.5 575,-67.5"/>
-<text text-anchor="start" x="583" y="-85.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/dataflow</text>
-<text text-anchor="middle" x="645.5" y="-74.5" font-family="Helvetica,sans-Serif" font-size="10.00">_matcher.h</text>
+<polygon fill="white" stroke="black" points="50,-67.5 50,-97.5 191,-97.5 191,-67.5 50,-67.5"/>
+<text text-anchor="start" x="58" y="-85.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/dataflow</text>
+<text text-anchor="middle" x="120.5" y="-74.5" font-family="Helvetica,sans-Serif" font-size="10.00">_matcher.h</text>
 </a>
 </g>
 </g>
 <!-- Node14&#45;&gt;Node15 -->
 <g id="edge16" class="edge"><title>Node14&#45;&gt;Node15</title>
-<path fill="none" stroke="midnightblue" d="M641.33,-195.407C631.095,-187.348 621.061,-177.08 615.5,-165 604.908,-141.991 621.138,-114.082 633.547,-97.6137"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="639.363,-198.305 649.5,-201.389 643.499,-192.657 639.363,-198.305"/>
+<path fill="none" stroke="midnightblue" d="M159.648,-190.865C158.484,-174.397 155.773,-152.452 149.5,-134 145.074,-120.982 137.166,-107.543 130.725,-97.8047"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="156.177,-191.492 160.231,-201.28 163.166,-191.1 156.177,-191.492"/>
 </g>
 <!-- Node16 -->
 <g id="node16" class="node"><title>Node16</title>
 <g id="a_node16"><a xlink:href="dataflow__pattern__functor_8h.html" target="_top" xlink:title="A set of passes for operating on pattern graphs. ">
-<polygon fill="white" stroke="black" points="625,-134.5 625,-164.5 766,-164.5 766,-134.5 625,-134.5"/>
-<text text-anchor="start" x="633" y="-152.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/dataflow</text>
-<text text-anchor="middle" x="695.5" y="-141.5" font-family="Helvetica,sans-Serif" font-size="10.00">_pattern_functor.h</text>
+<polygon fill="white" stroke="black" points="0,-134.5 0,-164.5 141,-164.5 141,-134.5 0,-134.5"/>
+<text text-anchor="start" x="8" y="-152.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/dataflow</text>
+<text text-anchor="middle" x="70.5" y="-141.5" font-family="Helvetica,sans-Serif" font-size="10.00">_pattern_functor.h</text>
 </a>
 </g>
 </g>
 <!-- Node14&#45;&gt;Node16 -->
 <g id="edge17" class="edge"><title>Node14&#45;&gt;Node16</title>
-<path fill="none" stroke="midnightblue" d="M682.19,-191.697C685.133,-182.587 688.395,-172.493 690.952,-164.577"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="678.801,-190.804 679.057,-201.396 685.462,-192.956 678.801,-190.804"/>
+<path fill="none" stroke="midnightblue" d="M132.74,-195.451C118.895,-185.452 102.484,-173.6 89.9905,-164.577"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="130.815,-198.378 140.971,-201.396 134.914,-192.704 130.815,-198.378"/>
 </g>
 <!-- Node16&#45;&gt;Node15 -->
 <g id="edge18" class="edge"><title>Node16&#45;&gt;Node15</title>
-<path fill="none" stroke="midnightblue" d="M678.536,-126.447C671.191,-116.899 662.811,-106.004 656.328,-97.5765"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="675.779,-128.604 684.651,-134.396 681.328,-124.336 675.779,-128.604"/>
+<path fill="none" stroke="midnightblue" d="M87.4637,-126.447C94.8087,-116.899 103.189,-106.004 109.672,-97.5765"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="84.6722,-124.336 81.3493,-134.396 90.2206,-128.604 84.6722,-124.336"/>
 </g>
 <!-- Node18&#45;&gt;Node6 -->
 <g id="edge22" class="edge"><title>Node18&#45;&gt;Node6</title>
-<path fill="none" stroke="midnightblue" d="M450.949,-201.269C430.561,-188.403 401.208,-169.879 384.171,-159.127"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="449.284,-204.357 459.609,-206.734 453.02,-198.437 449.284,-204.357"/>
+<path fill="none" stroke="midnightblue" d="M936.415,-205.296C927.116,-203.74 917.546,-202.242 908.5,-201 756.691,-180.162 578.039,-164.295 479.42,-156.286"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="935.916,-208.761 946.363,-206.997 937.096,-201.861 935.916,-208.761"/>
 </g>
 <!-- Node18&#45;&gt;Node7 -->
 <g id="edge23" class="edge"><title>Node18&#45;&gt;Node7</title>
-<path fill="none" stroke="midnightblue" d="M429.92,-204.478C386.415,-193.475 319.397,-176.525 272.088,-164.559"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="429.085,-207.877 439.637,-206.936 430.801,-201.09 429.085,-207.877"/>
+<path fill="none" stroke="midnightblue" d="M991.5,-196.411C991.5,-186.222 991.5,-173.901 991.5,-164.589"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="988,-196.734 991.5,-206.734 995,-196.734 988,-196.734"/>
 </g>
 <!-- Node18&#45;&gt;Node12 -->
 <g id="edge24" class="edge"><title>Node18&#45;&gt;Node12</title>
-<path fill="none" stroke="midnightblue" d="M534.865,-205.272C611.401,-192.517 740.856,-170.941 812.31,-159.032"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="534.175,-201.839 524.887,-206.936 535.326,-208.744 534.175,-201.839"/>
+<path fill="none" stroke="midnightblue" d="M1050.16,-205.194C1122.83,-192.429 1245.28,-170.916 1312.93,-159.032"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1049.5,-201.758 1040.25,-206.936 1050.71,-208.652 1049.5,-201.758"/>
 </g>
 <!-- Node20&#45;&gt;Node7 -->
 <g id="edge27" class="edge"><title>Node20&#45;&gt;Node7</title>
-<path fill="none" stroke="midnightblue" d="M125.033,-201.753C144.532,-190.827 171.701,-175.603 191.357,-164.589"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="123.157,-198.792 116.144,-206.734 126.579,-204.899 123.157,-198.792"/>
+<path fill="none" stroke="midnightblue" d="M1180.19,-204.058C1141.36,-193.037 1082.55,-176.344 1040.92,-164.528"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1179.51,-207.505 1190.09,-206.869 1181.43,-200.771 1179.51,-207.505"/>
 </g>
 <!-- Node20&#45;&gt;Node8 -->
 <g id="edge28" class="edge"><title>Node20&#45;&gt;Node8</title>
-<path fill="none" stroke="midnightblue" d="M91.7434,-197.713C86.6108,-187.287 80.2176,-174.301 75.4361,-164.589"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="88.6273,-199.308 96.1843,-206.734 94.9075,-196.216 88.6273,-199.308"/>
+<path fill="none" stroke="midnightblue" d="M1201.48,-200.237C1188.04,-189.452 1170.16,-175.102 1157.06,-164.589"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1199.59,-203.205 1209.58,-206.734 1203.97,-197.745 1199.59,-203.205"/>
 </g>
 <!-- Node20&#45;&gt;Node12 -->
 <g id="edge29" class="edge"><title>Node20&#45;&gt;Node12</title>
-<path fill="none" stroke="midnightblue" d="M168.438,-205.642C181.704,-203.925 195.523,-202.282 208.5,-201 459.342,-176.214 524.03,-193.3 774.5,-165 788.189,-163.453 802.984,-161.257 816.506,-159.039"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="167.88,-202.185 158.424,-206.964 168.796,-209.125 167.88,-202.185"/>
+<path fill="none" stroke="midnightblue" d="M1248.46,-202.613C1276.38,-189.739 1318.54,-170.306 1342.7,-159.167"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1246.84,-199.503 1239.22,-206.869 1249.77,-205.86 1246.84,-199.503"/>
 </g>
 <!-- Node21&#45;&gt;Node12 -->
 <g id="edge32" class="edge"><title>Node21&#45;&gt;Node12</title>
-<path fill="none" stroke="midnightblue" d="M1598.57,-201.023C1354.2,-166.639 1075.99,-155.639 942.598,-152.1"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1598.32,-204.523 1608.72,-202.466 1599.31,-197.592 1598.32,-204.523"/>
+<path fill="none" stroke="midnightblue" d="M1686.65,-200.911C1589.29,-182.901 1487.79,-167.939 1424.19,-159.024"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1686.19,-204.386 1696.66,-202.777 1687.47,-197.504 1686.19,-204.386"/>
 </g>
 <!-- Node21&#45;&gt;Node22 -->
 <g id="edge31" class="edge"><title>Node21&#45;&gt;Node22</title>
-<path fill="none" stroke="midnightblue" d="M1623.47,-197.407C1599.36,-187.029 1569.55,-174.195 1547.2,-164.577"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1622.17,-200.657 1632.74,-201.396 1624.93,-194.227 1622.17,-200.657"/>
+<path fill="none" stroke="midnightblue" d="M1753.5,-191.108C1753.5,-182.154 1753.5,-172.323 1753.5,-164.577"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1750,-191.396 1753.5,-201.396 1757,-191.396 1750,-191.396"/>
 </g>
 <!-- Node24 -->
 <g id="node24" class="node"><title>Node24</title>
 <g id="a_node24"><a xlink:href="detail_2extern_8h.html" target="_top" xlink:title="Helpers for using external functions. ">
-<polygon fill="white" stroke="black" points="1793.5,-134.5 1793.5,-164.5 1915.5,-164.5 1915.5,-134.5 1793.5,-134.5"/>
-<text text-anchor="start" x="1801.5" y="-152.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/detail</text>
-<text text-anchor="middle" x="1854.5" y="-141.5" font-family="Helvetica,sans-Serif" font-size="10.00">/extern.h</text>
+<polygon fill="white" stroke="black" points="2178.5,-134.5 2178.5,-164.5 2300.5,-164.5 2300.5,-134.5 2178.5,-134.5"/>
+<text text-anchor="start" x="2186.5" y="-152.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/detail</text>
+<text text-anchor="middle" x="2239.5" y="-141.5" font-family="Helvetica,sans-Serif" font-size="10.00">/extern.h</text>
 </a>
 </g>
 </g>
 <!-- Node23&#45;&gt;Node24 -->
 <g id="edge38" class="edge"><title>Node23&#45;&gt;Node24</title>
-<path fill="none" stroke="midnightblue" d="M2034.65,-264.008C2039.36,-246.065 2043.03,-218.98 2029.5,-201 2022.35,-191.492 1963.12,-175.71 1915.52,-164.317"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2031.22,-263.253 2031.72,-273.837 2037.93,-265.253 2031.22,-263.253"/>
+<path fill="none" stroke="midnightblue" d="M2277.55,-269.341C2262.23,-261.048 2245.19,-248.714 2236.5,-232 2225.39,-210.645 2230.36,-181.712 2234.95,-164.683"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2276.28,-272.616 2286.78,-273.986 2279.42,-266.364 2276.28,-272.616"/>
 </g>
 <!-- Node28 -->
 <g id="node28" class="node"><title>Node28</title>
 <g id="a_node28"><a xlink:href="elemwise_8h.html" target="_top" xlink:title="Elementwise op constructions. ">
-<polygon fill="white" stroke="black" points="1872,-207 1872,-226 2021,-226 2021,-207 1872,-207"/>
-<text text-anchor="middle" x="1946.5" y="-214" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/elemwise.h</text>
+<polygon fill="white" stroke="black" points="2407,-207 2407,-226 2556,-226 2556,-207 2407,-207"/>
+<text text-anchor="middle" x="2481.5" y="-214" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/elemwise.h</text>
 </a>
 </g>
 </g>
 <!-- Node23&#45;&gt;Node28 -->
 <g id="edge42" class="edge"><title>Node23&#45;&gt;Node28</title>
-<path fill="none" stroke="midnightblue" d="M2009.22,-267.213C1993.06,-254.407 1970.58,-236.588 1957.38,-226.127"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2007.43,-270.265 2017.44,-273.734 2011.78,-264.779 2007.43,-270.265"/>
+<path fill="none" stroke="midnightblue" d="M2341.05,-270.271C2375.38,-257.37 2428.6,-237.376 2458.71,-226.064"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2339.6,-267.075 2331.47,-273.869 2342.07,-273.628 2339.6,-267.075"/>
 </g>
 <!-- Node25 -->
 <g id="node25" class="node"><title>Node25</title>
 <g id="a_node25"><a xlink:href="cublas_8h.html" target="_top" xlink:title="External function interface to cuBLAS libraries. ">
-<polygon fill="white" stroke="black" points="1701.5,-67.5 1701.5,-97.5 1829.5,-97.5 1829.5,-67.5 1701.5,-67.5"/>
-<text text-anchor="start" x="1709.5" y="-85.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/contrib</text>
-<text text-anchor="middle" x="1765.5" y="-74.5" font-family="Helvetica,sans-Serif" font-size="10.00">/cublas.h</text>
+<polygon fill="white" stroke="black" points="2286.5,-67.5 2286.5,-97.5 2414.5,-97.5 2414.5,-67.5 2286.5,-67.5"/>
+<text text-anchor="start" x="2294.5" y="-85.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/contrib</text>
+<text text-anchor="middle" x="2350.5" y="-74.5" font-family="Helvetica,sans-Serif" font-size="10.00">/cublas.h</text>
 </a>
 </g>
 </g>
 <!-- Node24&#45;&gt;Node25 -->
 <g id="edge39" class="edge"><title>Node24&#45;&gt;Node25</title>
-<path fill="none" stroke="midnightblue" d="M1827.05,-128.451C1813.36,-118.452 1797.13,-106.6 1784.77,-97.5765"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1825.05,-131.324 1835.19,-134.396 1829.18,-125.672 1825.05,-131.324"/>
+<path fill="none" stroke="midnightblue" d="M2272.3,-129.296C2289.66,-119.125 2310.62,-106.855 2326.46,-97.5765"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2270.45,-126.322 2263.59,-134.396 2273.98,-132.363 2270.45,-126.322"/>
 </g>
 <!-- Node27 -->
 <g id="node27" class="node"><title>Node27</title>
 <g id="a_node27"><a xlink:href="rocblas_8h.html" target="_top" xlink:title="topi/include/topi/contrib\l/rocblas.h">
-<polygon fill="white" stroke="red" points="1847.5,-67.5 1847.5,-97.5 1975.5,-97.5 1975.5,-67.5 1847.5,-67.5"/>
-<text text-anchor="start" x="1855.5" y="-85.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/contrib</text>
-<text text-anchor="middle" x="1911.5" y="-74.5" font-family="Helvetica,sans-Serif" font-size="10.00">/rocblas.h</text>
+<polygon fill="white" stroke="red" points="2140.5,-67.5 2140.5,-97.5 2268.5,-97.5 2268.5,-67.5 2140.5,-67.5"/>
+<text text-anchor="start" x="2148.5" y="-85.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/contrib</text>
+<text text-anchor="middle" x="2204.5" y="-74.5" font-family="Helvetica,sans-Serif" font-size="10.00">/rocblas.h</text>
 </a>
 </g>
 </g>
 <!-- Node24&#45;&gt;Node27 -->
 <g id="edge41" class="edge"><title>Node24&#45;&gt;Node27</title>
-<path fill="none" stroke="midnightblue" d="M1873.59,-126.736C1882.02,-117.119 1891.69,-106.089 1899.16,-97.5765"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1870.83,-124.57 1866.87,-134.396 1876.09,-129.185 1870.83,-124.57"/>
+<path fill="none" stroke="midnightblue" d="M2227.16,-125.576C2222.13,-116.241 2216.48,-105.748 2212.08,-97.5765"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2224.08,-127.251 2231.91,-134.396 2230.25,-123.932 2224.08,-127.251"/>
 </g>
 <!-- Node26 -->
 <g id="node26" class="node"><title>Node26</title>
 <g id="a_node26"><a xlink:href="cuda_2dense_8h.html" target="_top" xlink:title="CUDA schedule for dense operation. ">
-<polygon fill="white" stroke="red" points="2032,-0.5 2032,-30.5 2151,-30.5 2151,-0.5 2032,-0.5"/>
-<text text-anchor="start" x="2040" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/cuda</text>
-<text text-anchor="middle" x="2091.5" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">/dense.h</text>
+<polygon fill="white" stroke="red" points="2291,-0.5 2291,-30.5 2410,-30.5 2410,-0.5 2291,-0.5"/>
+<text text-anchor="start" x="2299" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/cuda</text>
+<text text-anchor="middle" x="2350.5" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">/dense.h</text>
 </a>
 </g>
 </g>
 <!-- Node25&#45;&gt;Node26 -->
 <g id="edge40" class="edge"><title>Node25&#45;&gt;Node26</title>
-<path fill="none" stroke="midnightblue" d="M1839.38,-66.7684C1897.55,-55.1705 1977.58,-39.2139 2031.75,-28.4134"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1838.64,-63.3478 1829.52,-68.7356 1840.01,-70.2126 1838.64,-63.3478"/>
+<path fill="none" stroke="midnightblue" d="M2350.5,-57.1081C2350.5,-48.1539 2350.5,-38.3227 2350.5,-30.5765"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2347,-57.3959 2350.5,-67.396 2354,-57.396 2347,-57.3959"/>
 </g>
 <!-- Node29 -->
 <g id="node29" class="node"><title>Node29</title>
 <g id="a_node29"><a xlink:href="reduction_8h.html" target="_top" xlink:title="Reduction op constructors. ">
-<polygon fill="white" stroke="red" points="1589,-140 1589,-159 1738,-159 1738,-140 1589,-140"/>
-<text text-anchor="middle" x="1663.5" y="-147" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/reduction.h</text>
+<polygon fill="white" stroke="red" points="2356,-140 2356,-159 2505,-159 2505,-140 2356,-140"/>
+<text text-anchor="middle" x="2430.5" y="-147" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/reduction.h</text>
 </a>
 </g>
 </g>
 <!-- Node28&#45;&gt;Node29 -->
 <g id="edge43" class="edge"><title>Node28&#45;&gt;Node29</title>
-<path fill="none" stroke="midnightblue" d="M1899.23,-204.644C1843.48,-191.837 1751.92,-170.809 1700.87,-159.083"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1898.68,-208.108 1909.21,-206.936 1900.25,-201.286 1898.68,-208.108"/>
+<path fill="none" stroke="midnightblue" d="M2468.37,-198.77C2458.43,-186.097 2445.17,-169.201 2437.27,-159.127"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2465.7,-201.027 2474.62,-206.734 2471.2,-196.706 2465.7,-201.027"/>
 </g>
 <!-- Node31 -->
 <g id="node31" class="node"><title>Node31</title>
 <g id="a_node31"><a xlink:href="int__solver_8h.html" target="_top" xlink:title="integer constraints data structures and solvers ">
-<polygon fill="white" stroke="black" points="2228.5,-402.5 2228.5,-432.5 2340.5,-432.5 2340.5,-402.5 2228.5,-402.5"/>
-<text text-anchor="start" x="2236.5" y="-420.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/arith/int</text>
-<text text-anchor="middle" x="2284.5" y="-409.5" font-family="Helvetica,sans-Serif" font-size="10.00">_solver.h</text>
+<polygon fill="white" stroke="black" points="1582.5,-402.5 1582.5,-432.5 1694.5,-432.5 1694.5,-402.5 1582.5,-402.5"/>
+<text text-anchor="start" x="1590.5" y="-420.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/arith/int</text>
+<text text-anchor="middle" x="1638.5" y="-409.5" font-family="Helvetica,sans-Serif" font-size="10.00">_solver.h</text>
 </a>
 </g>
 </g>
 <!-- Node30&#45;&gt;Node31 -->
 <g id="edge45" class="edge"><title>Node30&#45;&gt;Node31</title>
-<path fill="none" stroke="midnightblue" d="M2184.82,-465.2C2205.34,-455.585 2233.44,-442.423 2254.57,-432.523"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2183.27,-462.063 2175.7,-469.475 2186.24,-468.402 2183.27,-462.063"/>
+<path fill="none" stroke="midnightblue" d="M1901.2,-467.865C1848.06,-459.272 1770.71,-446.26 1703.5,-433 1700.66,-432.441 1697.76,-431.852 1694.83,-431.246"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1900.73,-471.335 1911.16,-469.471 1901.85,-464.424 1900.73,-471.335"/>
 </g>
 <!-- Node32 -->
 <g id="node32" class="node"><title>Node32</title>
 <g id="a_node32"><a xlink:href="tensor_8h.html" target="_top" xlink:title="Dataflow tensor object. ">
-<polygon fill="white" stroke="black" points="1780,-408 1780,-427 1907,-427 1907,-408 1780,-408"/>
-<text text-anchor="middle" x="1843.5" y="-415" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/te/tensor.h</text>
+<polygon fill="white" stroke="black" points="1841,-408 1841,-427 1968,-427 1968,-408 1841,-408"/>
+<text text-anchor="middle" x="1904.5" y="-415" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/te/tensor.h</text>
 </a>
 </g>
 </g>
 <!-- Node30&#45;&gt;Node32 -->
 <g id="edge46" class="edge"><title>Node30&#45;&gt;Node32</title>
-<path fill="none" stroke="midnightblue" d="M2102.33,-467.546C2041.5,-456.018 1944.79,-437.694 1888.41,-427.009"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2102.03,-471.052 2112.51,-469.475 2103.34,-464.174 2102.03,-471.052"/>
+<path fill="none" stroke="midnightblue" d="M1949.43,-462.325C1937.84,-451.02 1922.64,-436.193 1913.22,-427.009"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1947.16,-464.998 1956.76,-469.475 1952.05,-459.987 1947.16,-464.998"/>
 </g>
 <!-- Node34 -->
 <g id="node34" class="node"><title>Node34</title>
 <g id="a_node34"><a xlink:href="operation_8h.html" target="_top" xlink:title="Operation node can generate one or multiple Tensors. ">
-<polygon fill="white" stroke="red" points="2077,-207 2077,-226 2220,-226 2220,-207 2077,-207"/>
-<text text-anchor="middle" x="2148.5" y="-214" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/te/operation.h</text>
+<polygon fill="white" stroke="red" points="2246,-207 2246,-226 2389,-226 2389,-207 2246,-207"/>
+<text text-anchor="middle" x="2317.5" y="-214" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/te/operation.h</text>
 </a>
 </g>
 </g>
 <!-- Node30&#45;&gt;Node34 -->
-<g id="edge72" class="edge"><title>Node30&#45;&gt;Node34</title>
-<path fill="none" stroke="midnightblue" d="M2156.85,-459.216C2155.06,-407.275 2150.08,-263.115 2148.8,-226.2"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2153.36,-459.46 2157.2,-469.333 2160.35,-459.218 2153.36,-459.46"/>
+<g id="edge69" class="edge"><title>Node30&#45;&gt;Node34</title>
+<path fill="none" stroke="midnightblue" d="M2030.1,-472.857C2089.02,-466.851 2170.31,-454.833 2193.5,-433 2248.67,-381.047 2191.6,-329.05 2236.5,-268 2251.23,-247.975 2276.51,-234.079 2294.91,-226.005"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2029.73,-469.377 2020.12,-473.839 2030.41,-476.343 2029.73,-469.377"/>
 </g>
-<!-- Node41 -->
-<g id="node41" class="node"><title>Node41</title>
-<g id="a_node41"><a xlink:href="pad__utils_8h.html" target="_top" xlink:title="Padding helpers. ">
-<polygon fill="white" stroke="red" points="2187.5,-134.5 2187.5,-164.5 2309.5,-164.5 2309.5,-134.5 2187.5,-134.5"/>
-<text text-anchor="start" x="2195.5" y="-152.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/detail</text>
-<text text-anchor="middle" x="2248.5" y="-141.5" font-family="Helvetica,sans-Serif" font-size="10.00">/pad_utils.h</text>
+<!-- Node40 -->
+<g id="node40" class="node"><title>Node40</title>
+<g id="a_node40"><a xlink:href="pad__utils_8h.html" target="_top" xlink:title="Padding helpers. ">
+<polygon fill="white" stroke="red" points="1962.5,-134.5 1962.5,-164.5 2084.5,-164.5 2084.5,-134.5 1962.5,-134.5"/>
+<text text-anchor="start" x="1970.5" y="-152.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/detail</text>
+<text text-anchor="middle" x="2023.5" y="-141.5" font-family="Helvetica,sans-Serif" font-size="10.00">/pad_utils.h</text>
 </a>
 </g>
 </g>
-<!-- Node30&#45;&gt;Node41 -->
-<g id="edge75" class="edge"><title>Node30&#45;&gt;Node41</title>
-<path fill="none" stroke="midnightblue" d="M2163.14,-459.417C2175.51,-418.48 2205.72,-317.371 2228.5,-232 2234.77,-208.492 2241.37,-180.972 2245.2,-164.679"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2159.76,-458.515 2160.21,-469.101 2166.46,-460.544 2159.76,-458.515"/>
+<!-- Node30&#45;&gt;Node40 -->
+<g id="edge72" class="edge"><title>Node30&#45;&gt;Node40</title>
+<path fill="none" stroke="midnightblue" d="M2029.95,-467.844C2092.96,-453.815 2179.5,-421.758 2179.5,-351.5 2179.5,-351.5 2179.5,-351.5 2179.5,-282.5 2179.5,-222.01 2110.3,-183.543 2064.08,-164.595"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2029.11,-464.444 2020.05,-469.944 2030.56,-471.292 2029.11,-464.444"/>
 </g>
-<!-- Node42 -->
-<g id="node42" class="node"><title>Node42</title>
-<g id="a_node42"><a xlink:href="topi_2include_2topi_2nn_8h.html" target="_top" xlink:title="NN op constructions. ">
-<polygon fill="white" stroke="red" points="2327.5,-140 2327.5,-159 2443.5,-159 2443.5,-140 2327.5,-140"/>
-<text text-anchor="middle" x="2385.5" y="-147" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/nn.h</text>
+<!-- Node41 -->
+<g id="node41" class="node"><title>Node41</title>
+<g id="a_node41"><a xlink:href="topi_2include_2topi_2nn_8h.html" target="_top" xlink:title="NN op constructions. ">
+<polygon fill="white" stroke="red" points="1828.5,-140 1828.5,-159 1944.5,-159 1944.5,-140 1828.5,-140"/>
+<text text-anchor="middle" x="1886.5" y="-147" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/nn.h</text>
 </a>
 </g>
 </g>
-<!-- Node30&#45;&gt;Node42 -->
-<g id="edge76" class="edge"><title>Node30&#45;&gt;Node42</title>
-<path fill="none" stroke="midnightblue" d="M2222.57,-470.162C2271.02,-463.006 2331.71,-450.809 2349.5,-433 2375.78,-406.685 2368.5,-388.694 2368.5,-351.5 2368.5,-351.5 2368.5,-351.5 2368.5,-282.5 2368.5,-235.595 2379.19,-180.077 2383.62,-159.099"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2221.84,-466.731 2212.44,-471.613 2222.83,-473.66 2221.84,-466.731"/>
+<!-- Node30&#45;&gt;Node41 -->
+<g id="edge73" class="edge"><title>Node30&#45;&gt;Node41</title>
+<path fill="none" stroke="midnightblue" d="M1979.74,-461.451C1998.04,-438.421 2027.5,-394.657 2027.5,-351.5 2027.5,-351.5 2027.5,-351.5 2027.5,-282.5 2027.5,-218.118 1948.19,-176.059 1908.53,-159.053"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1977,-459.27 1973.35,-469.217 1982.41,-463.715 1977,-459.27"/>
 </g>
-<!-- Node45 -->
-<g id="node45" class="node"><title>Node45</title>
-<g id="a_node45"><a xlink:href="data__layout_8h.html" target="_top" xlink:title="Layout expression to describe the data organization of a tensor. And BijectiveLayout to mapping two d...">
-<polygon fill="white" stroke="red" points="1565.5,-402.5 1565.5,-432.5 1675.5,-432.5 1675.5,-402.5 1565.5,-402.5"/>
-<text text-anchor="start" x="1573.5" y="-420.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/tir/data</text>
-<text text-anchor="middle" x="1620.5" y="-409.5" font-family="Helvetica,sans-Serif" font-size="10.00">_layout.h</text>
+<!-- Node44 -->
+<g id="node44" class="node"><title>Node44</title>
+<g id="a_node44"><a xlink:href="data__layout_8h.html" target="_top" xlink:title="Layout expression to describe the data organization of a tensor. And BijectiveLayout to mapping two d...">
+<polygon fill="white" stroke="red" points="1712.5,-402.5 1712.5,-432.5 1822.5,-432.5 1822.5,-402.5 1712.5,-402.5"/>
+<text text-anchor="start" x="1720.5" y="-420.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/tir/data</text>
+<text text-anchor="middle" x="1767.5" y="-409.5" font-family="Helvetica,sans-Serif" font-size="10.00">_layout.h</text>
 </a>
 </g>
 </g>
-<!-- Node30&#45;&gt;Node45 -->
-<g id="edge73" class="edge"><title>Node30&#45;&gt;Node45</title>
-<path fill="none" stroke="midnightblue" d="M2092.57,-470.806C1985.96,-458.993 1775.71,-435.697 1675.77,-424.624"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2092.23,-474.289 2102.56,-471.912 2093,-467.332 2092.23,-474.289"/>
+<!-- Node30&#45;&gt;Node44 -->
+<g id="edge70" class="edge"><title>Node30&#45;&gt;Node44</title>
+<path fill="none" stroke="midnightblue" d="M1927.18,-466.483C1894.89,-456.782 1848.6,-442.871 1814.16,-432.523"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1926.55,-469.949 1937.13,-469.475 1928.56,-463.245 1926.55,-469.949"/>
 </g>
 <!-- Node32&#45;&gt;Node21 -->
 <g id="edge47" class="edge"><title>Node32&#45;&gt;Node21</title>
-<path fill="none" stroke="midnightblue" d="M1769.97,-406.892C1721.24,-398.843 1663.59,-385.501 1648.5,-366 1617.37,-325.779 1643.87,-260.099 1658.01,-231.52"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1769.47,-410.357 1779.9,-408.481 1770.58,-403.445 1769.47,-410.357"/>
+<path fill="none" stroke="midnightblue" d="M1851.77,-405.975C1844.95,-404.629 1838.06,-403.277 1831.5,-402 1789.53,-393.835 1669.76,-398.94 1642.5,-366 1603,-318.264 1685.67,-258.351 1729.11,-231.566"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1851.17,-409.425 1861.66,-407.933 1852.53,-402.558 1851.17,-409.425"/>
 </g>
 <!-- Node32&#45;&gt;Node22 -->
 <g id="edge48" class="edge"><title>Node32&#45;&gt;Node22</title>
-<path fill="none" stroke="midnightblue" d="M1845.03,-397.784C1846.6,-368.41 1846.3,-310.458 1824.5,-268 1804.54,-229.114 1791.33,-221.081 1752.5,-201 1682.74,-164.922 1656.27,-181.55 1579.5,-165 1576.79,-164.415 1574.01,-163.813 1571.21,-163.201"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1841.53,-397.656 1844.35,-407.868 1848.51,-398.126 1841.53,-397.656"/>
+<path fill="none" stroke="midnightblue" d="M1889.51,-400.189C1881.21,-390.662 1871.08,-378.154 1863.5,-366 1846.14,-338.16 1841.81,-330.463 1832.5,-299 1820.02,-256.81 1840.59,-239.048 1818.5,-201 1809.53,-185.553 1793.82,-173.15 1780.1,-164.503"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1886.95,-402.576 1896.22,-407.71 1892.17,-397.917 1886.95,-402.576"/>
 </g>
 <!-- Node33 -->
 <g id="node33" class="node"><title>Node33</title>
 <g id="a_node33"><a xlink:href="autodiff_8h.html" target="_top" xlink:title="Automatic differentiation of tensor expressions. ">
-<polygon fill="white" stroke="black" points="1872,-341 1872,-360 2005,-360 2005,-341 1872,-341"/>
-<text text-anchor="middle" x="1938.5" y="-348" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/te/autodiff.h</text>
+<polygon fill="white" stroke="black" points="1652,-341 1652,-360 1785,-360 1785,-341 1652,-341"/>
+<text text-anchor="middle" x="1718.5" y="-348" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/te/autodiff.h</text>
 </a>
 </g>
 </g>
 <!-- Node32&#45;&gt;Node33 -->
 <g id="edge49" class="edge"><title>Node32&#45;&gt;Node33</title>
-<path fill="none" stroke="midnightblue" d="M1864.81,-401.92C1883.59,-389.069 1910.32,-370.782 1925.89,-360.127"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1862.59,-399.198 1856.31,-407.734 1866.54,-404.976 1862.59,-399.198"/>
+<path fill="none" stroke="midnightblue" d="M1869.98,-404.436C1833.08,-391.542 1775.51,-371.424 1743.01,-360.064"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1869.21,-407.874 1879.8,-407.869 1871.52,-401.265 1869.21,-407.874"/>
 </g>
 <!-- Node32&#45;&gt;Node34 -->
 <g id="edge50" class="edge"><title>Node32&#45;&gt;Node34</title>
-<path fill="none" stroke="midnightblue" d="M1898.4,-405.685C1932.71,-397.614 1977.12,-384.722 2013.5,-366 2056.58,-343.828 2067.36,-335.262 2099.5,-299 2120.41,-275.4 2137.4,-241.648 2144.67,-226.03"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1897.52,-402.295 1888.55,-407.935 1899.08,-409.119 1897.52,-402.295"/>
+<path fill="none" stroke="midnightblue" d="M1931.19,-403.484C1952,-393.319 1981.62,-378.816 2007.5,-366 2094.78,-322.784 2115.4,-309.512 2203.5,-268 2236.01,-252.684 2274.29,-235.997 2297.19,-226.157"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1929.47,-400.431 1922.02,-407.964 1932.54,-406.722 1929.47,-400.431"/>
 </g>
-<!-- Node43 -->
-<g id="node43" class="node"><title>Node43</title>
-<g id="a_node43"><a xlink:href="schedule_8h.html" target="_top" xlink:title="Define a schedule. ">
-<polygon fill="white" stroke="red" points="1675.5,-274 1675.5,-293 1815.5,-293 1815.5,-274 1675.5,-274"/>
-<text text-anchor="middle" x="1745.5" y="-281" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/te/schedule.h</text>
+<!-- Node42 -->
+<g id="node42" class="node"><title>Node42</title>
+<g id="a_node42"><a xlink:href="schedule_8h.html" target="_top" xlink:title="Define a schedule. ">
+<polygon fill="white" stroke="red" points="1841.5,-274 1841.5,-293 1981.5,-293 1981.5,-274 1841.5,-274"/>
+<text text-anchor="middle" x="1911.5" y="-281" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/te/schedule.h</text>
 </a>
 </g>
 </g>
-<!-- Node32&#45;&gt;Node43 -->
-<g id="edge66" class="edge"><title>Node32&#45;&gt;Node43</title>
-<path fill="none" stroke="midnightblue" d="M1831.57,-399.192C1820.02,-382.566 1801.89,-356.823 1785.5,-335 1774.35,-320.155 1760.84,-303.328 1752.72,-293.332"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1828.98,-401.6 1837.55,-407.83 1834.73,-397.615 1828.98,-401.6"/>
+<!-- Node32&#45;&gt;Node42 -->
+<g id="edge63" class="edge"><title>Node32&#45;&gt;Node42</title>
+<path fill="none" stroke="midnightblue" d="M1889.54,-399.786C1882.26,-390.531 1874.29,-378.41 1870.5,-366 1866.48,-352.823 1865.89,-347.985 1870.5,-335 1876.54,-317.971 1891.05,-302.502 1901.08,-293.295"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1887.04,-402.261 1896.14,-407.698 1892.42,-397.777 1887.04,-402.261"/>
 </g>
-<!-- Node44 -->
-<g id="node44" class="node"><title>Node44</title>
-<g id="a_node44"><a xlink:href="tensor__intrin_8h.html" target="_top" xlink:title="Tensor intrinsic operations. ">
-<polygon fill="white" stroke="black" points="1658,-335.5 1658,-365.5 1777,-365.5 1777,-335.5 1658,-335.5"/>
-<text text-anchor="start" x="1666" y="-353.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/te/tensor</text>
-<text text-anchor="middle" x="1717.5" y="-342.5" font-family="Helvetica,sans-Serif" font-size="10.00">_intrin.h</text>
+<!-- Node43 -->
+<g id="node43" class="node"><title>Node43</title>
+<g id="a_node43"><a xlink:href="tensor__intrin_8h.html" target="_top" xlink:title="Tensor intrinsic operations. ">
+<polygon fill="white" stroke="black" points="1880,-335.5 1880,-365.5 1999,-365.5 1999,-335.5 1880,-335.5"/>
+<text text-anchor="start" x="1888" y="-353.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/te/tensor</text>
+<text text-anchor="middle" x="1939.5" y="-342.5" font-family="Helvetica,sans-Serif" font-size="10.00">_intrin.h</text>
 </a>
 </g>
 </g>
-<!-- Node32&#45;&gt;Node44 -->
-<g id="edge70" class="edge"><title>Node32&#45;&gt;Node44</title>
-<path fill="none" stroke="midnightblue" d="M1817.71,-403.194C1796.51,-392.261 1766.56,-376.81 1744.93,-365.652"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1816.28,-406.394 1826.77,-407.869 1819.49,-400.173 1816.28,-406.394"/>
+<!-- Node32&#45;&gt;Node43 -->
+<g id="edge67" class="edge"><title>Node32&#45;&gt;Node43</title>
+<path fill="none" stroke="midnightblue" d="M1914.08,-398.713C1919.69,-388.287 1926.68,-375.301 1931.91,-365.589"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1910.88,-397.27 1909.22,-407.734 1917.04,-400.588 1910.88,-397.27"/>
 </g>
 <!-- Node34&#45;&gt;Node24 -->
-<g id="edge62" class="edge"><title>Node34&#45;&gt;Node24</title>
-<path fill="none" stroke="midnightblue" d="M2099.75,-204.722C2049.25,-193.557 1970.23,-176.086 1915.59,-164.007"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2099.24,-208.194 2109.76,-206.936 2100.75,-201.359 2099.24,-208.194"/>
+<g id="edge59" class="edge"><title>Node34&#45;&gt;Node24</title>
+<path fill="none" stroke="midnightblue" d="M2299.18,-200.237C2286.24,-189.452 2269.02,-175.102 2256.41,-164.589"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2297.06,-203.021 2306.98,-206.734 2301.54,-197.643 2297.06,-203.021"/>
 </g>
 <!-- Node34&#45;&gt;Node25 -->
 <g id="edge51" class="edge"><title>Node34&#45;&gt;Node25</title>
-<path fill="none" stroke="midnightblue" d="M2070.05,-205.735C1964.64,-192.455 1789.76,-169.798 1784.5,-165 1765.72,-147.86 1763.74,-116.068 1764.36,-97.6665"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2069.67,-209.215 2080.03,-206.99 2070.54,-202.269 2069.67,-209.215"/>
+<path fill="none" stroke="midnightblue" d="M2322.15,-196.889C2328.81,-170.244 2340.93,-121.798 2346.93,-97.7832"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2318.7,-196.289 2319.67,-206.839 2325.49,-197.987 2318.7,-196.289"/>
 </g>
 <!-- Node34&#45;&gt;Node26 -->
 <g id="edge53" class="edge"><title>Node34&#45;&gt;Node26</title>
-<path fill="none" stroke="midnightblue" d="M2155.62,-197.161C2165.77,-167.895 2180.92,-109.596 2159.5,-67 2151.51,-51.1042 2135.88,-38.953 2121.62,-30.5578"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2152.22,-196.268 2152.06,-206.862 2158.79,-198.678 2152.22,-196.268"/>
+<path fill="none" stroke="midnightblue" d="M2241.4,-204.623C2213.24,-197.35 2182.79,-185.22 2160.5,-165 2126.86,-134.481 2103.22,-102.544 2131.5,-67 2151.09,-42.3827 2232.89,-28.7414 2290.76,-22.0159"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2240.7,-208.056 2251.24,-206.999 2242.34,-201.251 2240.7,-208.056"/>
 </g>
 <!-- Node34&#45;&gt;Node27 -->
 <g id="edge52" class="edge"><title>Node34&#45;&gt;Node27</title>
-<path fill="none" stroke="midnightblue" d="M2092.19,-204.921C2045.31,-195.271 1983.03,-180.232 1962.5,-165 1939.04,-147.594 1923.82,-115.9 1916.54,-97.5867"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2091.74,-208.402 2102.24,-206.956 2093.13,-201.541 2091.74,-208.402"/>
+<path fill="none" stroke="midnightblue" d="M2235.98,-206.357C2210.52,-199.219 2185.05,-186.733 2169.5,-165 2154.27,-143.709 2174.7,-114.755 2190.15,-97.7049"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2235.17,-209.76 2245.72,-208.838 2236.89,-202.977 2235.17,-209.76"/>
 </g>
 <!-- Node34&#45;&gt;Node29 -->
-<g id="edge65" class="edge"><title>Node34&#45;&gt;Node29</title>
-<path fill="none" stroke="midnightblue" d="M2068.92,-205.729C1971.15,-193.663 1810.93,-173.673 1751.5,-165 1739.09,-163.189 1725.72,-161.072 1713.25,-159.025"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2068.7,-209.229 2079.06,-206.979 2069.56,-202.282 2068.7,-209.229"/>
+<g id="edge62" class="edge"><title>Node34&#45;&gt;Node29</title>
+<path fill="none" stroke="midnightblue" d="M2341.64,-201.615C2364.03,-188.737 2396.64,-169.976 2415.5,-159.127"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2339.66,-198.714 2332.74,-206.734 2343.15,-204.781 2339.66,-198.714"/>
 </g>
 <!-- Node35 -->
 <g id="node35" class="node"><title>Node35</title>
 <g id="a_node35"><a xlink:href="cuda_2injective_8h.html" target="_top" xlink:title="CUDA schedule for injective operations. ">
-<polygon fill="white" stroke="red" points="2462,-134.5 2462,-164.5 2581,-164.5 2581,-134.5 2462,-134.5"/>
-<text text-anchor="start" x="2470" y="-152.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/cuda</text>
-<text text-anchor="middle" x="2521.5" y="-141.5" font-family="Helvetica,sans-Serif" font-size="10.00">/injective.h</text>
+<polygon fill="white" stroke="red" points="2523,-134.5 2523,-164.5 2642,-164.5 2642,-134.5 2523,-134.5"/>
+<text text-anchor="start" x="2531" y="-152.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/cuda</text>
+<text text-anchor="middle" x="2582.5" y="-141.5" font-family="Helvetica,sans-Serif" font-size="10.00">/injective.h</text>
 </a>
 </g>
 </g>
 <!-- Node34&#45;&gt;Node35 -->
 <g id="edge54" class="edge"><title>Node34&#45;&gt;Node35</title>
-<path fill="none" stroke="midnightblue" d="M2214.08,-205.431C2275.74,-195.768 2370.57,-180.407 2452.5,-165 2455.51,-164.434 2458.59,-163.841 2461.69,-163.231"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2213.44,-201.989 2204.1,-206.991 2214.52,-208.905 2213.44,-201.989"/>
+<path fill="none" stroke="midnightblue" d="M2362.15,-204.547C2407.01,-193.546 2476.3,-176.55 2525.18,-164.559"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2361.29,-201.154 2352.42,-206.936 2362.96,-207.952 2361.29,-201.154"/>
 </g>
 <!-- Node36 -->
 <g id="node36" class="node"><title>Node36</title>
 <g id="a_node36"><a xlink:href="cuda_2normalization_8h.html" target="_top" xlink:title="CUDA schedule for LRN and l2 normalization operations. ">
-<polygon fill="white" stroke="black" points="2599,-134.5 2599,-164.5 2718,-164.5 2718,-134.5 2599,-134.5"/>
-<text text-anchor="start" x="2607" y="-152.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/cuda</text>
-<text text-anchor="middle" x="2658.5" y="-141.5" font-family="Helvetica,sans-Serif" font-size="10.00">/normalization.h</text>
+<polygon fill="white" stroke="black" points="2660,-134.5 2660,-164.5 2779,-164.5 2779,-134.5 2660,-134.5"/>
+<text text-anchor="start" x="2668" y="-152.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/cuda</text>
+<text text-anchor="middle" x="2719.5" y="-141.5" font-family="Helvetica,sans-Serif" font-size="10.00">/normalization.h</text>
 </a>
 </g>
 </g>
 <!-- Node34&#45;&gt;Node36 -->
 <g id="edge55" class="edge"><title>Node34&#45;&gt;Node36</title>
-<path fill="none" stroke="midnightblue" d="M2230.2,-208.44C2318.96,-200.236 2464.79,-185.198 2589.5,-165 2592.52,-164.511 2595.61,-163.979 2598.72,-163.417"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2229.84,-204.959 2220.2,-209.358 2230.48,-211.93 2229.84,-204.959"/>
+<path fill="none" stroke="midnightblue" d="M2373.72,-205.168C2382.02,-203.72 2390.48,-202.288 2398.5,-201 2510.64,-182.99 2539.67,-184.855 2651.5,-165 2654.23,-164.515 2657.02,-163.999 2659.84,-163.464"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2372.95,-201.749 2363.71,-206.933 2374.17,-208.643 2372.95,-201.749"/>
 </g>
 <!-- Node37 -->
 <g id="node37" class="node"><title>Node37</title>
 <g id="a_node37"><a xlink:href="cuda_2pooling_8h.html" target="_top" xlink:title="CUDA schedule for pooling operations. ">
-<polygon fill="white" stroke="red" points="2032,-67.5 2032,-97.5 2151,-97.5 2151,-67.5 2032,-67.5"/>
-<text text-anchor="start" x="2040" y="-85.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/cuda</text>
-<text text-anchor="middle" x="2091.5" y="-74.5" font-family="Helvetica,sans-Serif" font-size="10.00">/pooling.h</text>
+<polygon fill="white" stroke="red" points="2797,-134.5 2797,-164.5 2916,-164.5 2916,-134.5 2797,-134.5"/>
+<text text-anchor="start" x="2805" y="-152.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/cuda</text>
+<text text-anchor="middle" x="2856.5" y="-141.5" font-family="Helvetica,sans-Serif" font-size="10.00">/pooling.h</text>
 </a>
 </g>
 </g>
 <!-- Node34&#45;&gt;Node37 -->
 <g id="edge56" class="edge"><title>Node34&#45;&gt;Node37</title>
-<path fill="none" stroke="midnightblue" d="M2140.77,-197.598C2129.33,-171.111 2108.13,-122.012 2097.67,-97.7832"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2137.58,-199.046 2144.76,-206.839 2144.01,-196.271 2137.58,-199.046"/>
+<path fill="none" stroke="midnightblue" d="M2371.22,-205.223C2380.3,-203.675 2389.65,-202.198 2398.5,-201 2571,-177.642 2616.41,-191.197 2788.5,-165 2791.24,-164.582 2794.05,-164.122 2796.87,-163.632"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2370.36,-201.82 2361.11,-206.991 2371.57,-208.715 2370.36,-201.82"/>
 </g>
 <!-- Node38 -->
 <g id="node38" class="node"><title>Node38</title>
 <g id="a_node38"><a xlink:href="cuda_2reduction_8h.html" target="_top" xlink:title="CUDA schedule for reduction operations. ">
-<polygon fill="white" stroke="red" points="2736,-134.5 2736,-164.5 2855,-164.5 2855,-134.5 2736,-134.5"/>
-<text text-anchor="start" x="2744" y="-152.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/cuda</text>
-<text text-anchor="middle" x="2795.5" y="-141.5" font-family="Helvetica,sans-Serif" font-size="10.00">/reduction.h</text>
+<polygon fill="white" stroke="red" points="2934,-134.5 2934,-164.5 3053,-164.5 3053,-134.5 2934,-134.5"/>
+<text text-anchor="start" x="2942" y="-152.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/cuda</text>
+<text text-anchor="middle" x="2993.5" y="-141.5" font-family="Helvetica,sans-Serif" font-size="10.00">/reduction.h</text>
 </a>
 </g>
 </g>
 <!-- Node34&#45;&gt;Node38 -->
 <g id="edge57" class="edge"><title>Node34&#45;&gt;Node38</title>
-<path fill="none" stroke="midnightblue" d="M2230.39,-211.539C2342.9,-205.374 2551.38,-191.356 2727.5,-165 2730.25,-164.589 2733.05,-164.135 2735.87,-163.649"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2229.94,-208.058 2220.14,-212.094 2230.32,-215.048 2229.94,-208.058"/>
+<path fill="none" stroke="midnightblue" d="M2370.26,-205.2C2379.64,-203.613 2389.34,-202.13 2398.5,-201 2631.5,-172.273 2693,-197.562 2925.5,-165 2928.25,-164.615 2931.05,-164.182 2933.88,-163.713"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2369.49,-201.78 2360.25,-206.95 2370.7,-208.676 2369.49,-201.78"/>
 </g>
 <!-- Node39 -->
 <g id="node39" class="node"><title>Node39</title>
 <g id="a_node39"><a xlink:href="cuda_2softmax_8h.html" target="_top" xlink:title="topi/include/topi/cuda\l/softmax.h">
-<polygon fill="white" stroke="red" points="2873,-134.5 2873,-164.5 2992,-164.5 2992,-134.5 2873,-134.5"/>
-<text text-anchor="start" x="2881" y="-152.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/cuda</text>
-<text text-anchor="middle" x="2932.5" y="-141.5" font-family="Helvetica,sans-Serif" font-size="10.00">/softmax.h</text>
+<polygon fill="white" stroke="red" points="3071,-134.5 3071,-164.5 3190,-164.5 3190,-134.5 3071,-134.5"/>
+<text text-anchor="start" x="3079" y="-152.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/cuda</text>
+<text text-anchor="middle" x="3130.5" y="-141.5" font-family="Helvetica,sans-Serif" font-size="10.00">/softmax.h</text>
 </a>
 </g>
 </g>
 <!-- Node34&#45;&gt;Node39 -->
 <g id="edge58" class="edge"><title>Node34&#45;&gt;Node39</title>
-<path fill="none" stroke="midnightblue" d="M2230.38,-213.442C2363.8,-209.256 2636.16,-197.237 2864.5,-165 2867.25,-164.612 2870.05,-164.176 2872.88,-163.705"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2230.13,-209.948 2220.24,-213.753 2230.34,-216.944 2230.13,-209.948"/>
+<path fill="none" stroke="midnightblue" d="M2369.3,-205.251C2378.97,-203.615 2389.02,-202.101 2398.5,-201 2692.07,-166.896 2769.53,-203.936 3062.5,-165 3065.25,-164.634 3068.06,-164.217 3070.89,-163.761"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2368.64,-201.813 2359.4,-206.988 2369.85,-208.708 2368.64,-201.813"/>
 </g>
-<!-- Node40 -->
-<g id="node40" class="node"><title>Node40</title>
-<g id="a_node40"><a xlink:href="array__utils_8h.html" target="_top" xlink:title="Utility functions for handling arrays. ">
-<polygon fill="white" stroke="red" points="1971.5,-134.5 1971.5,-164.5 2093.5,-164.5 2093.5,-134.5 1971.5,-134.5"/>
-<text text-anchor="start" x="1979.5" y="-152.5" font-family="Helvetica,sans-Serif" font-size="10.00">topi/include/topi/detail</text>
-<text text-anchor="middle" x="2032.5" y="-141.5" font-family="Helvetica,sans-Serif" font-size="10.00">/array_utils.h</text>
+<!-- Node34&#45;&gt;Node40 -->
+<g id="edge60" class="edge"><title>Node34&#45;&gt;Node40</title>
+<path fill="none" stroke="midnightblue" d="M2268.75,-204.722C2218.25,-193.557 2139.23,-176.086 2084.59,-164.007"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2268.24,-208.194 2278.76,-206.936 2269.75,-201.359 2268.24,-208.194"/>
+</g>
+<!-- Node34&#45;&gt;Node41 -->
+<g id="edge61" class="edge"><title>Node34&#45;&gt;Node41</title>
+<path fill="none" stroke="midnightblue" d="M2235.58,-205.924C2161.63,-196.854 2049.95,-182.102 1953.5,-165 1943.77,-163.275 1933.31,-161.145 1923.61,-159.053"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2235.41,-209.429 2245.76,-207.166 2236.26,-202.481 2235.41,-209.429"/>
+</g>
+<!-- Node42&#45;&gt;Node21 -->
+<g id="edge64" class="edge"><title>Node42&#45;&gt;Node21</title>
+<path fill="none" stroke="midnightblue" d="M1881.26,-270.058C1854.49,-259.047 1815.47,-242.992 1787.6,-231.528"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1879.94,-273.301 1890.52,-273.869 1882.6,-266.827 1879.94,-273.301"/>
+</g>
+<!-- Node42&#45;&gt;Node22 -->
+<g id="edge65" class="edge"><title>Node42&#45;&gt;Node22</title>
+<path fill="none" stroke="midnightblue" d="M1902.17,-265.047C1891.91,-247.15 1874,-219.401 1852.5,-201 1834.32,-185.442 1810.53,-173.108 1790.82,-164.524"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1899.15,-266.808 1907.06,-273.855 1905.27,-263.412 1899.15,-266.808"/>
+</g>
+<!-- Node42&#45;&gt;Node34 -->
+<g id="edge66" class="edge"><title>Node42&#45;&gt;Node34</title>
+<path fill="none" stroke="midnightblue" d="M1974.9,-272.35C2054.51,-259.605 2189.67,-237.965 2264.21,-226.032"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1974.32,-268.899 1964.99,-273.936 1975.42,-275.811 1974.32,-268.899"/>
+</g>
+<!-- Node43&#45;&gt;Node42 -->
+<g id="edge68" class="edge"><title>Node43&#45;&gt;Node42</title>
+<path fill="none" stroke="midnightblue" d="M1929.35,-325.942C1924.44,-314.54 1918.84,-301.545 1915.25,-293.195"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1926.25,-327.597 1933.42,-335.396 1932.68,-324.827 1926.25,-327.597"/>
+</g>
+<!-- Node44&#45;&gt;Node21 -->
+<g id="edge71" class="edge"><title>Node44&#45;&gt;Node21</title>
+<path fill="none" stroke="midnightblue" d="M1703.06,-399.754C1662,-388.438 1615.44,-374.128 1609.5,-366 1583.81,-330.824 1584.31,-303.531 1609.5,-268 1620.07,-253.088 1661.09,-239.578 1696.66,-230.292"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1702.23,-403.157 1712.8,-402.413 1704.07,-396.404 1702.23,-403.157"/>
+</g>
+<!-- Node46 -->
+<g id="node46" class="node"><title>Node46</title>
+<g id="a_node46"><a xlink:href="target_8h.html" target="_top" xlink:title="Compilation target object. ">
+<polygon fill="white" stroke="black" points="2362.5,-335.5 2362.5,-365.5 2466.5,-365.5 2466.5,-335.5 2362.5,-335.5"/>
+<text text-anchor="start" x="2370.5" y="-353.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/target</text>
+<text text-anchor="middle" x="2414.5" y="-342.5" font-family="Helvetica,sans-Serif" font-size="10.00">/target.h</text>
 </a>
 </g>
 </g>
-<!-- Node34&#45;&gt;Node40 -->
-<g id="edge59" class="edge"><title>Node34&#45;&gt;Node40</title>
-<path fill="none" stroke="midnightblue" d="M2123.97,-201.753C2104.47,-190.827 2077.3,-175.603 2057.64,-164.589"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2122.42,-204.899 2132.86,-206.734 2125.84,-198.792 2122.42,-204.899"/>
+<!-- Node45&#45;&gt;Node46 -->
+<g id="edge75" class="edge"><title>Node45&#45;&gt;Node46</title>
+<path fill="none" stroke="midnightblue" d="M2257.16,-519.62C2269.5,-510.813 2283.68,-499.972 2295.5,-489 2339.7,-447.982 2384.19,-391.631 2403.93,-365.659"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2255.14,-516.763 2248.96,-525.37 2259.16,-522.494 2255.14,-516.763"/>
 </g>
-<!-- Node34&#45;&gt;Node41 -->
-<g id="edge63" class="edge"><title>Node34&#45;&gt;Node41</title>
-<path fill="none" stroke="midnightblue" d="M2170.57,-201.153C2187.31,-190.275 2210.19,-175.403 2226.82,-164.589"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2168.46,-198.349 2161.99,-206.734 2172.28,-204.218 2168.46,-198.349"/>
-</g>
-<!-- Node34&#45;&gt;Node42 -->
-<g id="edge64" class="edge"><title>Node34&#45;&gt;Node42</title>
-<path fill="none" stroke="midnightblue" d="M2189.8,-204.172C2236.67,-191.319 2312.06,-170.643 2354.28,-159.064"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2188.69,-200.848 2179.97,-206.869 2190.54,-207.599 2188.69,-200.848"/>
-</g>
-<!-- Node40&#45;&gt;Node26 -->
-<g id="edge60" class="edge"><title>Node40&#45;&gt;Node26</title>
-<path fill="none" stroke="midnightblue" d="M2022.73,-124.709C2017.35,-107.757 2013.42,-84.8974 2022.5,-67 2030.56,-51.1138 2046.22,-39.0247 2060.59,-30.6636"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2019.52,-126.145 2026.16,-134.404 2026.12,-123.809 2019.52,-126.145"/>
-</g>
-<!-- Node40&#45;&gt;Node37 -->
-<g id="edge61" class="edge"><title>Node40&#45;&gt;Node37</title>
-<path fill="none" stroke="midnightblue" d="M2052.25,-126.736C2060.98,-117.119 2071,-106.089 2078.72,-97.5765"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2049.43,-124.639 2045.3,-134.396 2054.61,-129.344 2049.43,-124.639"/>
-</g>
-<!-- Node43&#45;&gt;Node21 -->
-<g id="edge67" class="edge"><title>Node43&#45;&gt;Node21</title>
-<path fill="none" stroke="midnightblue" d="M1726.71,-267.237C1713.44,-256.452 1695.78,-242.102 1682.84,-231.589"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1724.74,-270.144 1734.71,-273.734 1729.16,-264.711 1724.74,-270.144"/>
-</g>
-<!-- Node43&#45;&gt;Node22 -->
-<g id="edge68" class="edge"><title>Node43&#45;&gt;Node22</title>
-<path fill="none" stroke="midnightblue" d="M1747.46,-263.682C1748.27,-245.272 1746.37,-217.642 1730.5,-201 1729.09,-199.521 1634.58,-177.8 1571.05,-163.331"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1743.96,-263.54 1746.7,-273.773 1750.94,-264.062 1743.96,-263.54"/>
-</g>
-<!-- Node43&#45;&gt;Node34 -->
-<g id="edge69" class="edge"><title>Node43&#45;&gt;Node34</title>
-<path fill="none" stroke="midnightblue" d="M1808.91,-272.272C1888,-259.517 2021.77,-237.941 2095.6,-226.032"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1807.91,-268.888 1798.6,-273.936 1809.03,-275.798 1807.91,-268.888"/>
-</g>
-<!-- Node44&#45;&gt;Node43 -->
-<g id="edge71" class="edge"><title>Node44&#45;&gt;Node43</title>
-<path fill="none" stroke="midnightblue" d="M1727.65,-325.942C1732.56,-314.54 1738.16,-301.545 1741.75,-293.195"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1724.32,-324.827 1723.58,-335.396 1730.75,-327.597 1724.32,-324.827"/>
-</g>
-<!-- Node45&#45;&gt;Node21 -->
-<g id="edge74" class="edge"><title>Node45&#45;&gt;Node21</title>
-<path fill="none" stroke="midnightblue" d="M1606.29,-393.409C1601.93,-385.083 1597.7,-375.412 1595.5,-366 1585.58,-323.59 1575.66,-306.775 1595.5,-268 1603.69,-251.991 1619.58,-239.895 1634.16,-231.56"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1603.24,-395.126 1611.17,-402.154 1609.35,-391.716 1603.24,-395.126"/>
+<!-- Node46&#45;&gt;Node19 -->
+<g id="edge78" class="edge"><title>Node46&#45;&gt;Node19</title>
+<path fill="none" stroke="midnightblue" d="M2352.16,-349.144C2244.82,-347.412 2018.7,-338.853 1832.5,-299 1750.26,-281.398 1657.16,-243.15 1617.75,-226.055"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2352.43,-352.648 2362.48,-349.295 2352.53,-345.649 2352.43,-352.648"/>
+</g>
+<!-- Node46&#45;&gt;Node21 -->
+<g id="edge79" class="edge"><title>Node46&#45;&gt;Node21</title>
+<path fill="none" stroke="midnightblue" d="M2352.1,-339.414C2293.86,-329.788 2204.59,-314.494 2127.5,-299 2066.3,-286.698 2051.47,-281.394 1990.5,-268 1928.87,-254.461 1858.09,-239.45 1810.05,-229.34"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2351.81,-342.914 2362.25,-341.086 2352.95,-336.007 2351.81,-342.914"/>
+</g>
+<!-- Node46&#45;&gt;Node22 -->
+<g id="edge80" class="edge"><title>Node46&#45;&gt;Node22</title>
+<path fill="none" stroke="midnightblue" d="M2353.86,-332.65C2319.4,-322.985 2275.47,-310.518 2236.5,-299 2074.55,-251.136 1883.05,-191.288 1798.02,-164.543"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2353.2,-336.101 2363.78,-335.427 2355.09,-329.36 2353.2,-336.101"/>
 </g>
 <!-- Node47 -->
 <g id="node47" class="node"><title>Node47</title>
-<g id="a_node47"><a xlink:href="target_8h.html" target="_top" xlink:title="Compilation target object. ">
-<polygon fill="white" stroke="black" points="2396.5,-335.5 2396.5,-365.5 2500.5,-365.5 2500.5,-335.5 2396.5,-335.5"/>
-<text text-anchor="start" x="2404.5" y="-353.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/target</text>
-<text text-anchor="middle" x="2448.5" y="-342.5" font-family="Helvetica,sans-Serif" font-size="10.00">/target.h</text>
+<g id="a_node47"><a xlink:href="search__task_8h.html" target="_top" xlink:title="Meta information and hardware parameters for a search task. ">
+<polygon fill="white" stroke="red" points="2512,-268.5 2512,-298.5 2661,-298.5 2661,-268.5 2512,-268.5"/>
+<text text-anchor="start" x="2520" y="-286.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/auto_scheduler</text>
+<text text-anchor="middle" x="2586.5" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00">/search_task.h</text>
 </a>
 </g>
 </g>
 <!-- Node46&#45;&gt;Node47 -->
-<g id="edge78" class="edge"><title>Node46&#45;&gt;Node47</title>
-<path fill="none" stroke="midnightblue" d="M2310.24,-517.908C2328.76,-496.493 2357.81,-462.675 2382.5,-433 2401.95,-409.625 2424.11,-382.065 2437.17,-365.727"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2307.59,-515.623 2303.69,-525.474 2312.88,-520.204 2307.59,-515.623"/>
-</g>
-<!-- Node47&#45;&gt;Node19 -->
-<g id="edge80" class="edge"><title>Node47&#45;&gt;Node19</title>
-<path fill="none" stroke="midnightblue" d="M2386.23,-347.195C2210.86,-340.472 1721.03,-320.029 1651.5,-299 1598.46,-282.958 1543.98,-243.706 1521.36,-226.189"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2386.21,-350.696 2396.33,-347.58 2386.48,-343.701 2386.21,-350.696"/>
-</g>
-<!-- Node47&#45;&gt;Node21 -->
-<g id="edge81" class="edge"><title>Node47&#45;&gt;Node21</title>
-<path fill="none" stroke="midnightblue" d="M2386.24,-347.763C2205.37,-342.421 1691.18,-325 1666.5,-299 1649.55,-281.141 1655.18,-249.908 1660.52,-231.732"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2386.29,-351.266 2396.39,-348.061 2386.5,-344.269 2386.29,-351.266"/>
-</g>
-<!-- Node47&#45;&gt;Node22 -->
-<g id="edge82" class="edge"><title>Node47&#45;&gt;Node22</title>
-<path fill="none" stroke="midnightblue" d="M2386.1,-347.066C2271.83,-341.956 2033.63,-328.098 1956.5,-299 1908.5,-280.89 1904.03,-262.123 1862.5,-232 1843.72,-218.378 1841.94,-209.865 1820.5,-201 1720.42,-159.62 1685.97,-184.802 1579.5,-165 1576.77,-164.493 1573.98,-163.953 1571.17,-163.391"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2386.28,-350.577 2396.43,-347.519 2386.59,-343.584 2386.28,-350.577"/>
+<g id="edge76" class="edge"><title>Node46&#45;&gt;Node47</title>
+<path fill="none" stroke="midnightblue" d="M2461.29,-331.819C2488.93,-321.371 2523.46,-308.323 2549.25,-298.577"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2459.94,-328.587 2451.82,-335.396 2462.41,-335.135 2459.94,-328.587"/>
 </g>
 <!-- Node48 -->
 <g id="node48" class="node"><title>Node48</title>
 <g id="a_node48"><a xlink:href="driver__api_8h.html" target="_top" xlink:title="Compiler driver APIs to drive the compilation. ">
-<polygon fill="white" stroke="black" points="2397.5,-268.5 2397.5,-298.5 2499.5,-298.5 2499.5,-268.5 2397.5,-268.5"/>
-<text text-anchor="start" x="2405.5" y="-286.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/driver</text>
-<text text-anchor="middle" x="2448.5" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00">/driver_api.h</text>
+<polygon fill="white" stroke="black" points="2801.5,-268.5 2801.5,-298.5 2903.5,-298.5 2903.5,-268.5 2801.5,-268.5"/>
+<text text-anchor="start" x="2809.5" y="-286.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/driver</text>
+<text text-anchor="middle" x="2852.5" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00">/driver_api.h</text>
 </a>
 </g>
 </g>
-<!-- Node47&#45;&gt;Node48 -->
-<g id="edge79" class="edge"><title>Node47&#45;&gt;Node48</title>
-<path fill="none" stroke="midnightblue" d="M2448.5,-325.108C2448.5,-316.154 2448.5,-306.323 2448.5,-298.577"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2445,-325.396 2448.5,-335.396 2452,-325.396 2445,-325.396"/>
+<!-- Node46&#45;&gt;Node48 -->
+<g id="edge77" class="edge"><title>Node46&#45;&gt;Node48</title>
+<path fill="none" stroke="midnightblue" d="M2476.99,-343.172C2552.2,-335.091 2682.17,-319.642 2792.5,-299 2795.34,-298.468 2798.26,-297.887 2801.19,-297.273"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2476.32,-339.724 2466.75,-344.264 2477.06,-346.684 2476.32,-339.724"/>
 </g>
 <!-- Node49 -->
 <g id="node49" class="node"><title>Node49</title>
 <g id="a_node49"><a xlink:href="codegen_8h.html" target="_top" xlink:title="Translates IRModule to runtime::Module. ">
-<polygon fill="white" stroke="black" points="2728.5,-268.5 2728.5,-298.5 2832.5,-298.5 2832.5,-268.5 2728.5,-268.5"/>
-<text text-anchor="start" x="2736.5" y="-286.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/target</text>
-<text text-anchor="middle" x="2780.5" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00">/codegen.h</text>
+<polygon fill="white" stroke="black" points="2389.5,-268.5 2389.5,-298.5 2493.5,-298.5 2493.5,-268.5 2389.5,-268.5"/>
+<text text-anchor="start" x="2397.5" y="-286.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/target</text>
+<text text-anchor="middle" x="2441.5" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00">/codegen.h</text>
 </a>
 </g>
 </g>
-<!-- Node47&#45;&gt;Node49 -->
-<g id="edge83" class="edge"><title>Node47&#45;&gt;Node49</title>
-<path fill="none" stroke="midnightblue" d="M2510.55,-338.831C2565.59,-329.155 2648.1,-314.13 2719.5,-299 2722.38,-298.391 2725.32,-297.749 2728.29,-297.088"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2509.85,-335.401 2500.6,-340.574 2511.06,-342.296 2509.85,-335.401"/>
+<!-- Node46&#45;&gt;Node49 -->
+<g id="edge81" class="edge"><title>Node46&#45;&gt;Node49</title>
+<path fill="none" stroke="midnightblue" d="M2424.27,-325.991C2428.08,-316.804 2432.33,-306.578 2435.65,-298.577"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2420.96,-324.818 2420.36,-335.396 2427.43,-327.504 2420.96,-324.818"/>
 </g>
 <!-- Node50 -->
 <g id="node50" class="node"><title>Node50</title>
 <g id="a_node50"><a xlink:href="generic__func_8h.html" target="_top" xlink:title="Generic function that can be specialzied on a per target basis. ">
-<polygon fill="white" stroke="red" points="2606.5,-268.5 2606.5,-298.5 2710.5,-298.5 2710.5,-268.5 2606.5,-268.5"/>
-<text text-anchor="start" x="2614.5" y="-286.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/target</text>
-<text text-anchor="middle" x="2658.5" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00">/generic_func.h</text>
+<polygon fill="white" stroke="red" points="2679.5,-268.5 2679.5,-298.5 2783.5,-298.5 2783.5,-268.5 2679.5,-268.5"/>
+<text text-anchor="start" x="2687.5" y="-286.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/target</text>
+<text text-anchor="middle" x="2731.5" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00">/generic_func.h</text>
 </a>
 </g>
 </g>
-<!-- Node47&#45;&gt;Node50 -->
-<g id="edge84" class="edge"><title>Node47&#45;&gt;Node50</title>
-<path fill="none" stroke="midnightblue" d="M2503.6,-332.444C2537.64,-321.908 2580.8,-308.549 2612.91,-298.611"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2502.33,-329.176 2493.81,-335.476 2504.4,-335.863 2502.33,-329.176"/>
+<!-- Node46&#45;&gt;Node50 -->
+<g id="edge82" class="edge"><title>Node46&#45;&gt;Node50</title>
+<path fill="none" stroke="midnightblue" d="M2476.65,-337.936C2528.58,-328.106 2604.51,-313.345 2670.5,-299 2673.37,-298.376 2676.32,-297.722 2679.29,-297.051"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2475.77,-334.539 2466.59,-339.834 2477.07,-341.418 2475.77,-334.539"/>
 </g>
 <!-- Node50&#45;&gt;Node21 -->
-<g id="edge85" class="edge"><title>Node50&#45;&gt;Node21</title>
-<path fill="none" stroke="midnightblue" d="M2596.4,-275.925C2569.41,-273.216 2537.42,-270.202 2508.5,-268 2221.77,-246.161 2149.46,-250.555 1862.5,-232 1815.27,-228.946 1761.72,-224.971 1722.38,-221.956"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2596.18,-279.421 2606.48,-276.946 2596.88,-272.456 2596.18,-279.421"/>
+<g id="edge83" class="edge"><title>Node50&#45;&gt;Node21</title>
+<path fill="none" stroke="midnightblue" d="M2669.21,-268.036C2483.87,-242.996 1979.7,-224.87 1810.02,-219.29"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2668.99,-271.539 2679.37,-269.464 2669.96,-264.607 2668.99,-271.539"/>
 </g>
 <!-- Node50&#45;&gt;Node26 -->
-<g id="edge86" class="edge"><title>Node50&#45;&gt;Node26</title>
-<path fill="none" stroke="midnightblue" d="M2720.59,-267.87C2872.35,-236.569 3112.71,-240.907 3018.5,-134 2960.88,-68.6193 2346.9,-30.2131 2151.12,-19.5608"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2719.77,-264.466 2710.72,-269.985 2721.23,-271.31 2719.77,-264.466"/>
+<g id="edge84" class="edge"><title>Node50&#45;&gt;Node26</title>
+<path fill="none" stroke="midnightblue" d="M2793.53,-267.866C2989.18,-225.758 3322.51,-275.212 3199.5,-134 3147.48,-74.2893 2594.92,-32.6356 2410.23,-20.2964"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2792.73,-264.46 2783.74,-270.079 2794.27,-271.288 2792.73,-264.46"/>
 </g>
 <!-- Node50&#45;&gt;Node35 -->
-<g id="edge87" class="edge"><title>Node50&#45;&gt;Node35</title>
-<path fill="none" stroke="midnightblue" d="M2636.44,-261.245C2608.21,-234.044 2560.09,-187.68 2536.06,-164.525"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2634.21,-263.956 2643.84,-268.374 2639.07,-258.915 2634.21,-263.956"/>
+<g id="edge85" class="edge"><title>Node50&#45;&gt;Node35</title>
+<path fill="none" stroke="midnightblue" d="M2707.9,-261.593C2677.25,-234.441 2624.58,-187.779 2598.33,-164.525"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2705.75,-264.362 2715.55,-268.374 2710.39,-259.123 2705.75,-264.362"/>
 </g>
 <!-- Node50&#45;&gt;Node36 -->
-<g id="edge88" class="edge"><title>Node50&#45;&gt;Node36</title>
-<path fill="none" stroke="midnightblue" d="M2658.5,-258.024C2658.5,-230.512 2658.5,-186.789 2658.5,-164.525"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2655,-258.374 2658.5,-268.374 2662,-258.374 2655,-258.374"/>
+<g id="edge86" class="edge"><title>Node50&#45;&gt;Node36</title>
+<path fill="none" stroke="midnightblue" d="M2729.31,-258.39C2726.81,-230.901 2722.81,-186.888 2720.77,-164.525"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2725.82,-258.732 2730.22,-268.374 2732.8,-258.098 2725.82,-258.732"/>
 </g>
 <!-- Node50&#45;&gt;Node37 -->
-<g id="edge89" class="edge"><title>Node50&#45;&gt;Node37</title>
-<path fill="none" stroke="midnightblue" d="M2719.56,-265.754C2813.56,-239.371 2984.67,-188.699 3001.5,-165 3009.48,-153.767 3010.97,-144.009 3001.5,-134 2972.24,-103.073 2348.83,-88.4517 2151.11,-84.5805"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2718.57,-262.397 2709.88,-268.461 2720.46,-269.138 2718.57,-262.397"/>
+<g id="edge87" class="edge"><title>Node50&#45;&gt;Node37</title>
+<path fill="none" stroke="midnightblue" d="M2751.96,-260.895C2777.76,-233.648 2821.39,-187.581 2843.22,-164.525"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2749.21,-258.706 2744.88,-268.374 2754.29,-263.519 2749.21,-258.706"/>
 </g>
 <!-- Node50&#45;&gt;Node38 -->
-<g id="edge90" class="edge"><title>Node50&#45;&gt;Node38</title>
-<path fill="none" stroke="midnightblue" d="M2680.56,-261.245C2708.79,-234.044 2756.91,-187.68 2780.94,-164.525"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2677.93,-258.915 2673.16,-268.374 2682.79,-263.956 2677.93,-258.915"/>
+<g id="edge88" class="edge"><title>Node50&#45;&gt;Node38</title>
+<path fill="none" stroke="midnightblue" d="M2768.62,-263.8C2821.73,-237.04 2918.23,-188.422 2965.66,-164.525"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2766.89,-260.749 2759.54,-268.374 2770.04,-267 2766.89,-260.749"/>
 </g>
 <!-- Node50&#45;&gt;Node39 -->
-<g id="edge91" class="edge"><title>Node50&#45;&gt;Node39</title>
-<path fill="none" stroke="midnightblue" d="M2696.7,-264.099C2752.08,-237.416 2853.51,-188.555 2903.32,-164.556"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2695.05,-261.005 2687.56,-268.499 2698.09,-267.312 2695.05,-261.005"/>
+<g id="edge89" class="edge"><title>Node50&#45;&gt;Node39</title>
+<path fill="none" stroke="midnightblue" d="M2783.66,-265.243C2863.49,-238.834 3014.42,-188.902 3088.01,-164.556"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2782.22,-262.035 2773.82,-268.499 2784.42,-268.681 2782.22,-262.035"/>
 </g>
 </g>
 </svg>
diff --git a/docs/api/doxygen/auto__schedule_8h.html b/docs/api/doxygen/auto__schedule_8h.html
new file mode 100644
index 0000000..a130f54
--- /dev/null
+++ b/docs/api/doxygen/auto__schedule_8h.html
@@ -0,0 +1,143 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.11"/>
+<title>tvm: include/tvm/auto_scheduler/auto_schedule.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { init_search(); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">tvm
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.11 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_b4c7d8e826c599ba55146c099a14beb5.html">tvm</a></li><li class="navelem"><a class="el" href="dir_a98464176f1216e334ac3bbacd433085.html">auto_scheduler</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Classes</a> &#124;
+<a href="#namespaces">Namespaces</a> &#124;
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">auto_schedule.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>The user interface of the auto scheduler.  
+<a href="#details">More...</a></p>
+<div class="textblock"><code>#include &lt;<a class="el" href="measure_8h_source.html">tvm/auto_scheduler/measure.h</a>&gt;</code><br />
+<code>#include &lt;<a class="el" href="search__policy_8h_source.html">tvm/auto_scheduler/search_policy.h</a>&gt;</code><br />
+<code>#include &lt;utility&gt;</code><br />
+</div><div class="textblock"><div class="dynheader">
+Include dependency graph for auto_schedule.h:</div>
+<div class="dyncontent">
+<div class="center"><iframe scrolling="no" frameborder="0" src="auto__schedule_8h__incl.svg" width="4315" height="1663"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
+</div>
+</div>
+</div>
+<p><a href="auto__schedule_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1auto__scheduler_1_1TuningOptionsNode.html">tvm::auto_scheduler::TuningOptionsNode</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tuning and measurement options.  <a href="classtvm_1_1auto__scheduler_1_1TuningOptionsNode.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1auto__scheduler_1_1TuningOptions.html">tvm::auto_scheduler::TuningOptions</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1TuningOptionsNode.html" title="Tuning and measurement options. ">TuningOptionsNode</a>.  <a href="classtvm_1_1auto__scheduler_1_1TuningOptions.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespacetvm"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacetvm.html">tvm</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:namespacetvm_1_1auto__scheduler"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a7d8ee089905d95fe01bb6c513f429ac0"><td class="memItemLeft" align="right" valign="top">std::pair&lt; te::Schedule, Array&lt; te::Tensor &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacetvm_1_1auto__scheduler.html#a7d8ee089905d95fe01bb6c513f429ac0">tvm::auto_scheduler::AutoSchedule</a> (SearchTask task, SearchPolicy search_policy, TuningOptions tuning_options)</td></tr>
+<tr class="memdesc:a7d8ee089905d95fe01bb6c513f429ac0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Run schedule search for a given compute declaration.  <a href="namespacetvm_1_1auto__scheduler.html#a7d8ee089905d95fe01bb6c513f429ac0">More...</a><br /></td></tr>
+<tr class="separator:a7d8ee089905d95fe01bb6c513f429ac0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>The user interface of the auto scheduler. </p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.11
+</small></address>
+</body>
+</html>
diff --git a/docs/api/doxygen/auto__schedule_8h__incl.svg b/docs/api/doxygen/auto__schedule_8h__incl.svg
new file mode 100644
index 0000000..d2f35e2
--- /dev/null
+++ b/docs/api/doxygen/auto__schedule_8h__incl.svg
@@ -0,0 +1,1276 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Generated by graphviz version 2.38.0 (20140413.2041)
+ -->
+<!-- Title: include/tvm/auto_scheduler/auto_schedule.h Pages: 1 -->
+<svg width="3236pt" height="1247pt"
+ viewBox="0.00 0.00 3236.00 1247.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 1243)">
+<title>include/tvm/auto_scheduler/auto_schedule.h</title>
+<polygon fill="white" stroke="none" points="-4,4 -4,-1243 3232,-1243 3232,4 -4,4"/>
+<!-- Node1 -->
+<g id="node1" class="node"><title>Node1</title>
+<polygon fill="#bfbfbf" stroke="black" points="3001.5,-1208.5 3001.5,-1238.5 3150.5,-1238.5 3150.5,-1208.5 3001.5,-1208.5"/>
+<text text-anchor="start" x="3009.5" y="-1226.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/auto_scheduler</text>
+<text text-anchor="middle" x="3076" y="-1215.5" font-family="Helvetica,sans-Serif" font-size="10.00">/auto_schedule.h</text>
+</g>
+<!-- Node2 -->
+<g id="node2" class="node"><title>Node2</title>
+<g id="a_node2"><a xlink:href="measure_8h.html" target="_top" xlink:title="Distributed measurement infrastructure to measure the runtime costs of tensor programs. These functions are responsible for building the tvm module, uploading it to remote devices, recording the running time costs, and checking the correctness of the output. ">
+<polygon fill="white" stroke="black" points="2547,-1141.5 2547,-1171.5 2659,-1171.5 2659,-1141.5 2547,-1141.5"/>
+<text text-anchor="start" x="2555" y="-1159.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/auto_scheduler</text>
+<text text-anchor="middle" x="2603" y="-1148.5" font-family="Helvetica,sans-Serif" font-size="10.00">/measure.h</text>
+</a>
+</g>
+</g>
+<!-- Node1&#45;&gt;Node2 -->
+<g id="edge1" class="edge"><title>Node1&#45;&gt;Node2</title>
+<path fill="none" stroke="midnightblue" d="M3001.31,-1212.24C2909.91,-1199.68 2756.56,-1178.6 2669.21,-1166.6"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2669.53,-1163.11 2659.15,-1165.22 2668.58,-1170.04 2669.53,-1163.11"/>
+</g>
+<!-- Node19 -->
+<g id="node19" class="node"><title>Node19</title>
+<polygon fill="white" stroke="#bfbfbf" points="2806,-62 2806,-81 2848,-81 2848,-62 2806,-62"/>
+<text text-anchor="middle" x="2827" y="-69" font-family="Helvetica,sans-Serif" font-size="10.00">utility</text>
+</g>
+<!-- Node1&#45;&gt;Node19 -->
+<g id="edge183" class="edge"><title>Node1&#45;&gt;Node19</title>
+<path fill="none" stroke="midnightblue" d="M3114.75,-1208.44C3159.78,-1189.31 3228,-1150.44 3228,-1090.5 3228,-1090.5 3228,-1090.5 3228,-188 3228,-146.192 3197.52,-141.436 3160,-123 3107.09,-97.0026 2930.92,-80.628 2858.5,-74.8469"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2858.44,-71.3316 2848.2,-74.0404 2857.9,-78.3102 2858.44,-71.3316"/>
+</g>
+<!-- Node50 -->
+<g id="node50" class="node"><title>Node50</title>
+<g id="a_node50"><a xlink:href="search__policy_8h.html" target="_top" xlink:title="The base class of search policies, including the abstract definition of search policy and other suppo...">
+<polygon fill="white" stroke="black" points="3020,-1141.5 3020,-1171.5 3132,-1171.5 3132,-1141.5 3020,-1141.5"/>
+<text text-anchor="start" x="3028" y="-1159.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/auto_scheduler</text>
+<text text-anchor="middle" x="3076" y="-1148.5" font-family="Helvetica,sans-Serif" font-size="10.00">/search_policy.h</text>
+</a>
+</g>
+</g>
+<!-- Node1&#45;&gt;Node50 -->
+<g id="edge178" class="edge"><title>Node1&#45;&gt;Node50</title>
+<path fill="none" stroke="midnightblue" d="M3076,-1208.4C3076,-1200.64 3076,-1190.81 3076,-1181.86"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="3079.5,-1181.58 3076,-1171.58 3072.5,-1181.58 3079.5,-1181.58"/>
+</g>
+<!-- Node3 -->
+<g id="node3" class="node"><title>Node3</title>
+<g id="a_node3"><a xlink:href="loop__state_8h.html" target="_top" xlink:title="The definition of the &quot;state&quot; in search. ">
+<polygon fill="white" stroke="black" points="2032,-940.5 2032,-970.5 2144,-970.5 2144,-940.5 2032,-940.5"/>
+<text text-anchor="start" x="2040" y="-958.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/auto_scheduler</text>
+<text text-anchor="middle" x="2088" y="-947.5" font-family="Helvetica,sans-Serif" font-size="10.00">/loop_state.h</text>
+</a>
+</g>
+</g>
+<!-- Node2&#45;&gt;Node3 -->
+<g id="edge2" class="edge"><title>Node2&#45;&gt;Node3</title>
+<path fill="none" stroke="midnightblue" d="M2566.38,-1141.35C2474.64,-1105.9 2235.14,-1013.35 2134.06,-974.299"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2135.03,-970.92 2124.44,-970.58 2132.5,-977.449 2135.03,-970.92"/>
+</g>
+<!-- Node17 -->
+<g id="node17" class="node"><title>Node17</title>
+<polygon fill="white" stroke="#bfbfbf" points="643,-62 643,-81 687,-81 687,-62 643,-62"/>
+<text text-anchor="middle" x="665" y="-69" font-family="Helvetica,sans-Serif" font-size="10.00">string</text>
+</g>
+<!-- Node2&#45;&gt;Node17 -->
+<g id="edge175" class="edge"><title>Node2&#45;&gt;Node17</title>
+<path fill="none" stroke="midnightblue" d="M2546.94,-1155.15C2214.74,-1152.99 511.05,-1140.24 281,-1105 152.464,-1085.31 0,-1153.54 0,-1023.5 0,-1023.5 0,-1023.5 0,-311 0,-211.15 37.2339,-174.129 123,-123 205.175,-74.0123 456.865,-97.0905 552,-87 579.337,-84.1005 610.299,-80.0753 632.891,-77.0014"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="633.517,-80.4485 642.948,-75.6208 632.565,-73.5135 633.517,-80.4485"/>
+</g>
+<!-- Node2&#45;&gt;Node19 -->
+<g id="edge177" class="edge"><title>Node2&#45;&gt;Node19</title>
+<path fill="none" stroke="midnightblue" d="M2659.12,-1151.7C2784.41,-1141.69 3076,-1109.18 3076,-1023.5 3076,-1023.5 3076,-1023.5 3076,-826 3076,-736.5 3190,-749.5 3190,-660 3190,-660 3190,-660 3190,-188 3190,-147.769 3162.61,-141.717 3127,-123 3037.84,-76.1396 2915.03,-71.0716 2858.19,-71.5347"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2858,-68.037 2848.05,-71.6834 2858.1,-75.0363 2858,-68.037"/>
+</g>
+<!-- Node31 -->
+<g id="node31" class="node"><title>Node31</title>
+<polygon fill="white" stroke="#bfbfbf" points="257.5,-241 257.5,-260 350.5,-260 350.5,-241 257.5,-241"/>
+<text text-anchor="middle" x="304" y="-248" font-family="Helvetica,sans-Serif" font-size="10.00">unordered_map</text>
+</g>
+<!-- Node2&#45;&gt;Node31 -->
+<g id="edge176" class="edge"><title>Node2&#45;&gt;Node31</title>
+<path fill="none" stroke="midnightblue" d="M2546.93,-1155.55C2178.06,-1155.5 114,-1149.6 114,-1023.5 114,-1023.5 114,-1023.5 114,-428.5 114,-343.407 217.29,-287.572 271.555,-264.109"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="273.219,-267.207 281.082,-260.105 270.507,-260.754 273.219,-267.207"/>
+</g>
+<!-- Node44 -->
+<g id="node44" class="node"><title>Node44</title>
+<g id="a_node44"><a xlink:href="search__task_8h.html" target="_top" xlink:title="Meta information and hardware parameters for a search task. ">
+<polygon fill="white" stroke="black" points="2760,-1074.5 2760,-1104.5 2872,-1104.5 2872,-1074.5 2760,-1074.5"/>
+<text text-anchor="start" x="2768" y="-1092.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/auto_scheduler</text>
+<text text-anchor="middle" x="2816" y="-1081.5" font-family="Helvetica,sans-Serif" font-size="10.00">/search_task.h</text>
+</a>
+</g>
+</g>
+<!-- Node2&#45;&gt;Node44 -->
+<g id="edge141" class="edge"><title>Node2&#45;&gt;Node44</title>
+<path fill="none" stroke="midnightblue" d="M2648.96,-1141.48C2681.46,-1131.56 2725.23,-1118.2 2759.81,-1107.65"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2761.22,-1110.88 2769.76,-1104.61 2759.17,-1104.18 2761.22,-1110.88"/>
+</g>
+<!-- Node4 -->
+<g id="node4" class="node"><title>Node4</title>
+<polygon fill="white" stroke="#bfbfbf" points="1157.5,-817.5 1157.5,-836.5 1252.5,-836.5 1252.5,-817.5 1157.5,-817.5"/>
+<text text-anchor="middle" x="1205" y="-824.5" font-family="Helvetica,sans-Serif" font-size="10.00">dmlc/common.h</text>
+</g>
+<!-- Node3&#45;&gt;Node4 -->
+<g id="edge3" class="edge"><title>Node3&#45;&gt;Node4</title>
+<path fill="none" stroke="midnightblue" d="M2031.72,-955.052C1875.33,-955.93 1438.29,-953.735 1305,-904 1270.63,-891.175 1238.25,-862.384 1220.08,-844.151"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1222.25,-841.36 1212.78,-836.612 1217.22,-846.23 1222.25,-841.36"/>
+</g>
+<!-- Node5 -->
+<g id="node5" class="node"><title>Node5</title>
+<g id="a_node5"><a xlink:href="transform__step_8h.html" target="_top" xlink:title="Transformation steps. These steps are used to manipulate the LoopState. They are similar to the sched...">
+<polygon fill="white" stroke="black" points="1314,-873.5 1314,-903.5 1426,-903.5 1426,-873.5 1314,-873.5"/>
+<text text-anchor="start" x="1322" y="-891.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/auto_scheduler</text>
+<text text-anchor="middle" x="1370" y="-880.5" font-family="Helvetica,sans-Serif" font-size="10.00">/transform_step.h</text>
+</a>
+</g>
+</g>
+<!-- Node3&#45;&gt;Node5 -->
+<g id="edge4" class="edge"><title>Node3&#45;&gt;Node5</title>
+<path fill="none" stroke="midnightblue" d="M2031.96,-949.427C1901.23,-937.592 1576.61,-908.204 1436.32,-895.504"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1436.42,-891.998 1426.14,-894.582 1435.78,-898.97 1436.42,-891.998"/>
+</g>
+<!-- Node9 -->
+<g id="node9" class="node"><title>Node9</title>
+<g id="a_node9"><a xlink:href="runtime_2container_8h.html" target="_top" xlink:title="Common POD(plain old data) container types. ">
+<polygon fill="white" stroke="black" points="1890,-302.5 1890,-321.5 2022,-321.5 2022,-302.5 1890,-302.5"/>
+<text text-anchor="middle" x="1956" y="-309.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/runtime/container.h</text>
+</a>
+</g>
+</g>
+<!-- Node3&#45;&gt;Node9 -->
+<g id="edge136" class="edge"><title>Node3&#45;&gt;Node9</title>
+<path fill="none" stroke="midnightblue" d="M2088,-940.461C2088,-917.118 2088,-868.849 2088,-828 2088,-828 2088,-828 2088,-428.5 2088,-376.427 2029.1,-342.384 1989.99,-325.52"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1991.1,-322.191 1980.52,-321.602 1988.42,-328.66 1991.1,-322.191"/>
+</g>
+<!-- Node3&#45;&gt;Node19 -->
+<g id="edge139" class="edge"><title>Node3&#45;&gt;Node19</title>
+<path fill="none" stroke="midnightblue" d="M2144.3,-952.249C2269.44,-944.883 2576.3,-913.567 2788,-781 3002.84,-646.467 3114,-566.489 3114,-313 3114,-313 3114,-313 3114,-188 3114,-152.35 3096.9,-142.42 3067,-123 3001.6,-80.5201 2906.94,-72.975 2858.36,-72.1209"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2858.19,-68.6193 2848.16,-72.0296 2858.13,-75.619 2858.19,-68.6193"/>
+</g>
+<!-- Node25 -->
+<g id="node25" class="node"><title>Node25</title>
+<polygon fill="white" stroke="#bfbfbf" points="2501.5,-123.5 2501.5,-142.5 2548.5,-142.5 2548.5,-123.5 2501.5,-123.5"/>
+<text text-anchor="middle" x="2525" y="-130.5" font-family="Helvetica,sans-Serif" font-size="10.00">vector</text>
+</g>
+<!-- Node3&#45;&gt;Node25 -->
+<g id="edge140" class="edge"><title>Node3&#45;&gt;Node25</title>
+<path fill="none" stroke="midnightblue" d="M2144.13,-945.604C2302.19,-919.326 2745.16,-836.834 2832,-725 2932.15,-596.032 2914.12,-507.739 2849,-358 2802.47,-251.013 2757.1,-238.928 2657,-179 2626.05,-160.473 2586.43,-148.27 2558.7,-141.305"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2559.24,-137.835 2548.7,-138.89 2557.6,-144.639 2559.24,-137.835"/>
+</g>
+<!-- Node26 -->
+<g id="node26" class="node"><title>Node26</title>
+<polygon fill="white" stroke="#bfbfbf" points="902.5,-179.5 902.5,-198.5 965.5,-198.5 965.5,-179.5 902.5,-179.5"/>
+<text text-anchor="middle" x="934" y="-186.5" font-family="Helvetica,sans-Serif" font-size="10.00">functional</text>
+</g>
+<!-- Node3&#45;&gt;Node26 -->
+<g id="edge137" class="edge"><title>Node3&#45;&gt;Node26</title>
+<path fill="none" stroke="midnightblue" d="M2031.66,-953.523C1728.42,-947.904 304,-916.784 304,-828 304,-828 304,-828 304,-770 304,-684.775 809.455,-286.885 914.876,-204.826"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="917.05,-207.569 922.798,-198.668 912.754,-202.042 917.05,-207.569"/>
+</g>
+<!-- Node3&#45;&gt;Node31 -->
+<g id="edge138" class="edge"><title>Node3&#45;&gt;Node31</title>
+<path fill="none" stroke="midnightblue" d="M2031.53,-954.233C1735.16,-952.663 369.898,-943.316 290,-904 250.887,-884.753 228,-871.592 228,-828 228,-828 228,-828 228,-658 228,-499.419 185.363,-445.901 252,-302 258.658,-287.622 271.345,-275.172 282.52,-266.23"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="284.769,-268.918 290.646,-260.103 280.555,-263.329 284.769,-268.918"/>
+</g>
+<!-- Node5&#45;&gt;Node4 -->
+<g id="edge5" class="edge"><title>Node5&#45;&gt;Node4</title>
+<path fill="none" stroke="midnightblue" d="M1330.9,-873.399C1302.84,-863.283 1265.43,-849.791 1238.69,-840.149"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1239.6,-836.758 1229.01,-836.658 1237.23,-843.343 1239.6,-836.758"/>
+</g>
+<!-- Node6 -->
+<g id="node6" class="node"><title>Node6</title>
+<polygon fill="white" stroke="#bfbfbf" points="1270.5,-817.5 1270.5,-836.5 1341.5,-836.5 1341.5,-817.5 1270.5,-817.5"/>
+<text text-anchor="middle" x="1306" y="-824.5" font-family="Helvetica,sans-Serif" font-size="10.00">dmlc/json.h</text>
+</g>
+<!-- Node5&#45;&gt;Node6 -->
+<g id="edge6" class="edge"><title>Node5&#45;&gt;Node6</title>
+<path fill="none" stroke="midnightblue" d="M1354.83,-873.399C1345.25,-864.486 1332.84,-852.952 1322.93,-843.741"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1325.02,-840.903 1315.31,-836.658 1320.25,-846.03 1325.02,-840.903"/>
+</g>
+<!-- Node7 -->
+<g id="node7" class="node"><title>Node7</title>
+<g id="a_node7"><a xlink:href="node_8h.html" target="_top" xlink:title="Definitions and helper macros for IR/AST nodes. ">
+<polygon fill="white" stroke="black" points="1359,-537.5 1359,-556.5 1457,-556.5 1457,-537.5 1359,-537.5"/>
+<text text-anchor="middle" x="1408" y="-544.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/node/node.h</text>
+</a>
+</g>
+</g>
+<!-- Node5&#45;&gt;Node7 -->
+<g id="edge7" class="edge"><title>Node5&#45;&gt;Node7</title>
+<path fill="none" stroke="midnightblue" d="M1370,-873.275C1370,-851.476 1370,-808.495 1370,-772 1370,-772 1370,-772 1370,-658 1370,-623.813 1386.6,-586.764 1397.86,-565.571"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1400.95,-567.215 1402.72,-556.769 1394.82,-563.832 1400.95,-567.215"/>
+</g>
+<!-- Node38 -->
+<g id="node38" class="node"><title>Node38</title>
+<g id="a_node38"><a xlink:href="schedule_8h.html" target="_top" xlink:title="Define a schedule. ">
+<polygon fill="white" stroke="black" points="1526.5,-817.5 1526.5,-836.5 1629.5,-836.5 1629.5,-817.5 1526.5,-817.5"/>
+<text text-anchor="middle" x="1578" y="-824.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/te/schedule.h</text>
+</a>
+</g>
+</g>
+<!-- Node5&#45;&gt;Node38 -->
+<g id="edge102" class="edge"><title>Node5&#45;&gt;Node38</title>
+<path fill="none" stroke="midnightblue" d="M1419.03,-873.475C1455.38,-863.075 1504.31,-849.078 1538.25,-839.372"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1539.61,-842.622 1548.26,-836.506 1537.69,-835.892 1539.61,-842.622"/>
+</g>
+<!-- Node8 -->
+<g id="node8" class="node"><title>Node8</title>
+<g id="a_node8"><a xlink:href="node_2container_8h.html" target="_top" xlink:title="Array/Map container in the DSL graph. ">
+<polygon fill="white" stroke="black" points="1504.5,-358.5 1504.5,-377.5 1623.5,-377.5 1623.5,-358.5 1504.5,-358.5"/>
+<text text-anchor="middle" x="1564" y="-365.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/node/container.h</text>
+</a>
+</g>
+</g>
+<!-- Node7&#45;&gt;Node8 -->
+<g id="edge8" class="edge"><title>Node7&#45;&gt;Node8</title>
+<path fill="none" stroke="midnightblue" d="M1415.52,-537.463C1439.87,-509.845 1516.77,-422.584 1549.27,-385.709"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1552.2,-387.685 1556.18,-377.868 1546.95,-383.056 1552.2,-387.685"/>
+</g>
+<!-- Node7&#45;&gt;Node9 -->
+<g id="edge95" class="edge"><title>Node7&#45;&gt;Node9</title>
+<path fill="none" stroke="midnightblue" d="M1420.39,-537.492C1458.63,-511.349 1574.64,-432.824 1616,-414 1713.69,-369.538 1835.97,-338.8 1904.07,-323.709"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1905.09,-327.067 1914.11,-321.509 1903.6,-320.229 1905.09,-327.067"/>
+</g>
+<!-- Node11 -->
+<g id="node11" class="node"><title>Node11</title>
+<g id="a_node11"><a xlink:href="runtime_2memory_8h.html" target="_top" xlink:title="Runtime memory management. ">
+<polygon fill="white" stroke="black" points="1330.5,-241 1330.5,-260 1457.5,-260 1457.5,-241 1330.5,-241"/>
+<text text-anchor="middle" x="1394" y="-248" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/runtime/memory.h</text>
+</a>
+</g>
+</g>
+<!-- Node7&#45;&gt;Node11 -->
+<g id="edge96" class="edge"><title>Node7&#45;&gt;Node11</title>
+<path fill="none" stroke="midnightblue" d="M1401.99,-537.481C1389.52,-518.958 1362,-473.236 1362,-430.5 1362,-430.5 1362,-430.5 1362,-367 1362,-331.434 1376.27,-291.871 1385.75,-269.504"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1388.99,-270.818 1389.82,-260.255 1382.59,-267.999 1388.99,-270.818"/>
+</g>
+<!-- Node12 -->
+<g id="node12" class="node"><title>Node12</title>
+<g id="a_node12"><a xlink:href="object_8h.html" target="_top" xlink:title="A managed object in the TVM runtime. ">
+<polygon fill="white" stroke="black" points="1480.5,-123.5 1480.5,-142.5 1597.5,-142.5 1597.5,-123.5 1480.5,-123.5"/>
+<text text-anchor="middle" x="1539" y="-130.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/runtime/object.h</text>
+</a>
+</g>
+</g>
+<!-- Node7&#45;&gt;Node12 -->
+<g id="edge97" class="edge"><title>Node7&#45;&gt;Node12</title>
+<path fill="none" stroke="midnightblue" d="M1398.47,-537.263C1389.79,-528.801 1377.28,-515.196 1370,-501 1314.77,-393.234 1234.76,-329.08 1311,-235 1359.63,-174.999 1414.19,-237.74 1481,-199 1501.15,-187.314 1518.05,-166.159 1528.32,-151.161"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1531.27,-153.04 1533.82,-142.757 1525.41,-149.205 1531.27,-153.04"/>
+</g>
+<!-- Node13 -->
+<g id="node13" class="node"><title>Node13</title>
+<g id="a_node13"><a xlink:href="c__runtime__api_8h.html" target="_top" xlink:title="tvm/runtime/c_runtime\l_api.h">
+<polygon fill="white" stroke="black" points="416.5,-56.5 416.5,-86.5 543.5,-86.5 543.5,-56.5 416.5,-56.5"/>
+<text text-anchor="start" x="424.5" y="-74.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/runtime/c_runtime</text>
+<text text-anchor="middle" x="480" y="-63.5" font-family="Helvetica,sans-Serif" font-size="10.00">_api.h</text>
+</a>
+</g>
+</g>
+<!-- Node7&#45;&gt;Node13 -->
+<g id="edge94" class="edge"><title>Node7&#45;&gt;Node13</title>
+<path fill="none" stroke="midnightblue" d="M1358.66,-546.795C1267.65,-547.121 1067.9,-542.495 906,-501 845.849,-485.583 832.469,-474.815 778,-445 691.714,-397.768 658.805,-396.003 594,-322 532.892,-252.219 498.78,-144.197 485.958,-96.5161"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="489.327,-95.5653 483.411,-86.7757 482.554,-97.3358 489.327,-95.5653"/>
+</g>
+<!-- Node7&#45;&gt;Node17 -->
+<g id="edge98" class="edge"><title>Node7&#45;&gt;Node17</title>
+<path fill="none" stroke="midnightblue" d="M1358.85,-542.829C1233.49,-533.931 905.462,-505.345 817,-445 692.609,-360.145 669.929,-154.043 665.868,-91.0784"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="669.36,-90.8373 665.306,-81.0487 662.371,-91.2289 669.36,-90.8373"/>
+</g>
+<!-- Node18 -->
+<g id="node18" class="node"><title>Node18</title>
+<polygon fill="white" stroke="#bfbfbf" points="1852,-62 1852,-81 1920,-81 1920,-62 1852,-62"/>
+<text text-anchor="middle" x="1886" y="-69" font-family="Helvetica,sans-Serif" font-size="10.00">type_traits</text>
+</g>
+<!-- Node7&#45;&gt;Node18 -->
+<g id="edge99" class="edge"><title>Node7&#45;&gt;Node18</title>
+<path fill="none" stroke="midnightblue" d="M1410.21,-537.2C1417.78,-508.555 1444.94,-416.461 1495,-358 1518.97,-330.004 1602.56,-286.78 1633,-266 1711.82,-212.196 1734.54,-202.684 1809,-143 1830.96,-125.402 1854.6,-103.22 1869.81,-88.4862"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1872.62,-90.6347 1877.33,-81.1435 1867.73,-85.6269 1872.62,-90.6347"/>
+</g>
+<!-- Node7&#45;&gt;Node19 -->
+<g id="edge100" class="edge"><title>Node7&#45;&gt;Node19</title>
+<path fill="none" stroke="midnightblue" d="M1457.27,-544.271C1634.7,-537.554 2240.1,-510.259 2421,-445 2605.02,-378.617 2668.3,-355.256 2786,-199 2810.8,-166.07 2820.95,-117.528 2824.82,-91.1781"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2828.32,-91.4318 2826.16,-81.0603 2821.38,-90.5175 2828.32,-91.4318"/>
+</g>
+<!-- Node7&#45;&gt;Node25 -->
+<g id="edge101" class="edge"><title>Node7&#45;&gt;Node25</title>
+<path fill="none" stroke="midnightblue" d="M1457.05,-540.943C1513.57,-534.473 1608.97,-521.574 1689,-501 1988.54,-423.993 2065.22,-399.916 2344,-266 2395.26,-241.378 2407.48,-233.084 2453,-199 2473.51,-183.643 2495.07,-163.582 2509.19,-149.832"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2511.91,-152.061 2516.58,-142.549 2507,-147.076 2511.91,-152.061"/>
+</g>
+<!-- Node32 -->
+<g id="node32" class="node"><title>Node32</title>
+<g id="a_node32"><a xlink:href="reflection_8h.html" target="_top" xlink:title="Reflection and serialization of compiler IR/AST nodes. ">
+<polygon fill="white" stroke="black" points="1133.5,-481.5 1133.5,-500.5 1252.5,-500.5 1252.5,-481.5 1133.5,-481.5"/>
+<text text-anchor="middle" x="1193" y="-488.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/node/reflection.h</text>
+</a>
+</g>
+</g>
+<!-- Node7&#45;&gt;Node32 -->
+<g id="edge63" class="edge"><title>Node7&#45;&gt;Node32</title>
+<path fill="none" stroke="midnightblue" d="M1373.93,-537.444C1336.82,-528.122 1277.34,-513.183 1236.79,-502.997"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1237.46,-499.558 1226.91,-500.516 1235.75,-506.347 1237.46,-499.558"/>
+</g>
+<!-- Node33 -->
+<g id="node33" class="node"><title>Node33</title>
+<g id="a_node33"><a xlink:href="structural__equal_8h.html" target="_top" xlink:title="Structural equality comparison. ">
+<polygon fill="white" stroke="black" points="864.5,-414.5 864.5,-444.5 975.5,-444.5 975.5,-414.5 864.5,-414.5"/>
+<text text-anchor="start" x="872.5" y="-432.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/node/structural</text>
+<text text-anchor="middle" x="920" y="-421.5" font-family="Helvetica,sans-Serif" font-size="10.00">_equal.h</text>
+</a>
+</g>
+</g>
+<!-- Node7&#45;&gt;Node33 -->
+<g id="edge92" class="edge"><title>Node7&#45;&gt;Node33</title>
+<path fill="none" stroke="midnightblue" d="M1359,-542.133C1298.18,-536.569 1191.65,-524.308 1103,-501 1052.22,-487.649 996.209,-464.799 959.699,-448.739"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="960.955,-445.468 950.395,-444.609 958.115,-451.866 960.955,-445.468"/>
+</g>
+<!-- Node35 -->
+<g id="node35" class="node"><title>Node35</title>
+<g id="a_node35"><a xlink:href="structural__hash_8h.html" target="_top" xlink:title="tvm/node/structural\l_hash.h">
+<polygon fill="white" stroke="black" points="1032.5,-414.5 1032.5,-444.5 1143.5,-444.5 1143.5,-414.5 1032.5,-414.5"/>
+<text text-anchor="start" x="1040.5" y="-432.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/node/structural</text>
+<text text-anchor="middle" x="1088" y="-421.5" font-family="Helvetica,sans-Serif" font-size="10.00">_hash.h</text>
+</a>
+</g>
+</g>
+<!-- Node7&#45;&gt;Node35 -->
+<g id="edge93" class="edge"><title>Node7&#45;&gt;Node35</title>
+<path fill="none" stroke="midnightblue" d="M1358.86,-543.528C1287.74,-539.078 1160.61,-527.577 1124,-501 1108.58,-489.808 1099.31,-470.063 1094.04,-454.31"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1097.37,-453.231 1091.14,-444.665 1090.67,-455.25 1097.37,-453.231"/>
+</g>
+<!-- Node36 -->
+<g id="node36" class="node"><title>Node36</title>
+<g id="a_node36"><a xlink:href="repr__printer_8h.html" target="_top" xlink:title="Printer class to print repr string of each AST/IR nodes. ">
+<polygon fill="white" stroke="black" points="1550,-481.5 1550,-500.5 1680,-500.5 1680,-481.5 1550,-481.5"/>
+<text text-anchor="middle" x="1615" y="-488.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/node/repr_printer.h</text>
+</a>
+</g>
+</g>
+<!-- Node7&#45;&gt;Node36 -->
+<g id="edge89" class="edge"><title>Node7&#45;&gt;Node36</title>
+<path fill="none" stroke="midnightblue" d="M1440.8,-537.444C1476.38,-528.162 1533.31,-513.309 1572.35,-503.127"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1573.56,-506.427 1582.35,-500.516 1571.79,-499.654 1573.56,-506.427"/>
+</g>
+<!-- Node8&#45;&gt;Node9 -->
+<g id="edge9" class="edge"><title>Node8&#45;&gt;Node9</title>
+<path fill="none" stroke="midnightblue" d="M1623.54,-358.799C1693.39,-349.175 1809.16,-333.227 1884,-322.918"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1884.85,-326.334 1894.28,-321.502 1883.9,-319.399 1884.85,-326.334"/>
+</g>
+<!-- Node8&#45;&gt;Node11 -->
+<g id="edge57" class="edge"><title>Node8&#45;&gt;Node11</title>
+<path fill="none" stroke="midnightblue" d="M1551.22,-358.319C1522.18,-338.586 1450.96,-290.199 1415.2,-265.907"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1417.16,-263.007 1406.93,-260.282 1413.23,-268.797 1417.16,-263.007"/>
+</g>
+<!-- Node8&#45;&gt;Node12 -->
+<g id="edge58" class="edge"><title>Node8&#45;&gt;Node12</title>
+<path fill="none" stroke="midnightblue" d="M1504.23,-360.695C1446.35,-351.056 1361.57,-326.804 1321,-266 1313.35,-254.54 1312.17,-245.574 1321,-235 1378.62,-166.02 1453.19,-259.118 1520,-199 1532.95,-187.344 1537.28,-167.396 1538.62,-152.665"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1542.12,-152.815 1539.16,-142.641 1535.13,-152.438 1542.12,-152.815"/>
+</g>
+<!-- Node8&#45;&gt;Node17 -->
+<g id="edge61" class="edge"><title>Node8&#45;&gt;Node17</title>
+<path fill="none" stroke="midnightblue" d="M1510.59,-358.483C1467.3,-350.908 1404.99,-338.48 1352,-322 1215.96,-279.696 1176.35,-275.232 1056,-199 1013.47,-172.059 1017.35,-144.864 972,-123 879.475,-78.3922 755.01,-72.1907 697.111,-71.9512"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="697.092,-68.4511 687.097,-71.968 697.103,-75.4511 697.092,-68.4511"/>
+</g>
+<!-- Node8&#45;&gt;Node19 -->
+<g id="edge62" class="edge"><title>Node8&#45;&gt;Node19</title>
+<path fill="none" stroke="midnightblue" d="M1623.59,-361.685C1637.51,-360.46 1652.27,-359.172 1666,-358 1859.73,-341.455 1912.24,-364.403 2102,-322 2230.69,-293.243 2258.69,-266.445 2372,-199 2426.25,-166.711 2432.85,-145.067 2492,-123 2598.57,-83.24 2735.3,-74.7327 2795.81,-72.9497"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2795.95,-76.4473 2805.86,-72.6959 2795.78,-69.4495 2795.95,-76.4473"/>
+</g>
+<!-- Node22 -->
+<g id="node22" class="node"><title>Node22</title>
+<g id="a_node22"><a xlink:href="packed__func_8h.html" target="_top" xlink:title="Type&#45;erased function used across TVM API. ">
+<polygon fill="white" stroke="red" points="1475.5,-235.5 1475.5,-265.5 1588.5,-265.5 1588.5,-235.5 1475.5,-235.5"/>
+<text text-anchor="start" x="1483.5" y="-253.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/runtime/packed</text>
+<text text-anchor="middle" x="1532" y="-242.5" font-family="Helvetica,sans-Serif" font-size="10.00">_func.h</text>
+</a>
+</g>
+</g>
+<!-- Node8&#45;&gt;Node22 -->
+<g id="edge59" class="edge"><title>Node8&#45;&gt;Node22</title>
+<path fill="none" stroke="midnightblue" d="M1561.59,-358.319C1556.77,-340.889 1545.74,-301.104 1538.6,-275.313"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1541.93,-274.248 1535.89,-265.545 1535.19,-276.117 1541.93,-274.248"/>
+</g>
+<!-- Node28 -->
+<g id="node28" class="node"><title>Node28</title>
+<polygon fill="white" stroke="#bfbfbf" points="1721,-241 1721,-260 1783,-260 1783,-241 1721,-241"/>
+<text text-anchor="middle" x="1752" y="-248" font-family="Helvetica,sans-Serif" font-size="10.00">algorithm</text>
+</g>
+<!-- Node8&#45;&gt;Node28 -->
+<g id="edge60" class="edge"><title>Node8&#45;&gt;Node28</title>
+<path fill="none" stroke="midnightblue" d="M1578.64,-358.49C1594,-349.527 1618.8,-334.946 1640,-322 1671.54,-302.741 1707.66,-279.853 1730.15,-265.499"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1732.08,-268.417 1738.63,-260.083 1728.32,-262.519 1732.08,-268.417"/>
+</g>
+<!-- Node10 -->
+<g id="node10" class="node"><title>Node10</title>
+<polygon fill="white" stroke="#bfbfbf" points="2042,-62 2042,-81 2128,-81 2128,-62 2042,-62"/>
+<text text-anchor="middle" x="2085" y="-69" font-family="Helvetica,sans-Serif" font-size="10.00">dmlc/logging.h</text>
+</g>
+<!-- Node9&#45;&gt;Node10 -->
+<g id="edge10" class="edge"><title>Node9&#45;&gt;Node10</title>
+<path fill="none" stroke="midnightblue" d="M1988.2,-302.466C2031.52,-288.937 2106.13,-257.853 2132,-199 2148.96,-160.413 2118.87,-113.586 2099.48,-89.1577"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2102,-86.7082 2092.93,-81.2279 2096.6,-91.1665 2102,-86.7082"/>
+</g>
+<!-- Node9&#45;&gt;Node11 -->
+<g id="edge11" class="edge"><title>Node9&#45;&gt;Node11</title>
+<path fill="none" stroke="midnightblue" d="M1889.95,-307.189C1795.58,-301.233 1616.88,-288.057 1466,-266 1458.28,-264.872 1450.14,-263.455 1442.22,-261.951"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1442.84,-258.506 1432.35,-260.016 1441.49,-265.376 1442.84,-258.506"/>
+</g>
+<!-- Node9&#45;&gt;Node12 -->
+<g id="edge25" class="edge"><title>Node9&#45;&gt;Node12</title>
+<path fill="none" stroke="midnightblue" d="M1921.59,-302.482C1896.32,-295.243 1861.88,-283.254 1835,-266 1788.98,-236.458 1796.02,-205.156 1748,-179 1704.7,-155.415 1650.05,-144.19 1607.5,-138.848"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1607.85,-135.365 1597.51,-137.673 1607.04,-142.317 1607.85,-135.365"/>
+</g>
+<!-- Node9&#45;&gt;Node17 -->
+<g id="edge52" class="edge"><title>Node9&#45;&gt;Node17</title>
+<path fill="none" stroke="midnightblue" d="M1889.88,-308.365C1738.05,-302.02 1373.44,-285.005 1321,-266 1298.85,-257.973 1299.42,-244.807 1278,-235 1215.27,-206.281 1182.13,-240.477 1127,-199 1095.99,-175.669 1116.29,-144.525 1084,-123 1020.65,-80.7706 784.001,-73.8245 697.191,-72.7056"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="697.172,-69.2053 687.134,-72.5939 697.095,-76.2049 697.172,-69.2053"/>
+</g>
+<!-- Node9&#45;&gt;Node18 -->
+<g id="edge54" class="edge"><title>Node9&#45;&gt;Node18</title>
+<path fill="none" stroke="midnightblue" d="M1920.15,-302.397C1901.12,-295.81 1879.37,-284.589 1868,-266 1860.81,-254.247 1859.94,-246.177 1868,-235 1897.58,-193.954 1946.42,-240.046 1976,-199 1995.75,-171.598 1993.07,-152.148 1976,-123 1965.28,-104.699 1945.24,-92.5256 1926.78,-84.7257"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1927.92,-81.4128 1917.33,-81.0362 1925.37,-87.9335 1927.92,-81.4128"/>
+</g>
+<!-- Node9&#45;&gt;Node19 -->
+<g id="edge55" class="edge"><title>Node9&#45;&gt;Node19</title>
+<path fill="none" stroke="midnightblue" d="M1992.28,-302.427C2022.37,-294.706 2065.91,-282.104 2102,-266 2217.14,-214.624 2226.84,-161.18 2347,-123 2431.31,-96.2119 2703.06,-79.2596 2795.71,-74.1409"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2796.06,-77.6274 2805.85,-73.5887 2795.68,-70.6377 2796.06,-77.6274"/>
+</g>
+<!-- Node9&#45;&gt;Node22 -->
+<g id="edge26" class="edge"><title>Node9&#45;&gt;Node22</title>
+<path fill="none" stroke="midnightblue" d="M1895.25,-302.475C1816.64,-291.443 1680.12,-272.286 1598.71,-260.861"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1598.96,-257.362 1588.57,-259.439 1597.99,-264.294 1598.96,-257.362"/>
+</g>
+<!-- Node9&#45;&gt;Node25 -->
+<g id="edge56" class="edge"><title>Node9&#45;&gt;Node25</title>
+<path fill="none" stroke="midnightblue" d="M1995.92,-302.451C2070.78,-285.941 2236.86,-247.022 2372,-199 2416.91,-183.043 2467.54,-160.627 2497.83,-146.724"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2499.3,-149.898 2506.91,-142.528 2496.37,-143.543 2499.3,-149.898"/>
+</g>
+<!-- Node27 -->
+<g id="node27" class="node"><title>Node27</title>
+<polygon fill="white" stroke="#bfbfbf" points="2066.5,-179.5 2066.5,-198.5 2123.5,-198.5 2123.5,-179.5 2066.5,-179.5"/>
+<text text-anchor="middle" x="2095" y="-186.5" font-family="Helvetica,sans-Serif" font-size="10.00">memory</text>
+</g>
+<!-- Node9&#45;&gt;Node27 -->
+<g id="edge51" class="edge"><title>Node9&#45;&gt;Node27</title>
+<path fill="none" stroke="midnightblue" d="M1973.48,-302.406C1989.17,-294.239 2012.36,-281.002 2030,-266 2050.98,-248.157 2070.92,-223.247 2083.05,-206.878"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2085.9,-208.91 2088.94,-198.762 2080.23,-204.797 2085.9,-208.91"/>
+</g>
+<!-- Node9&#45;&gt;Node28 -->
+<g id="edge48" class="edge"><title>Node9&#45;&gt;Node28</title>
+<path fill="none" stroke="midnightblue" d="M1924.53,-302.451C1892.38,-293.635 1841.07,-279.333 1797,-266 1794.03,-265.102 1790.96,-264.153 1787.88,-263.188"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1788.72,-259.782 1778.13,-260.093 1786.6,-266.454 1788.72,-259.782"/>
+</g>
+<!-- Node29 -->
+<g id="node29" class="node"><title>Node29</title>
+<polygon fill="white" stroke="#bfbfbf" points="1877.5,-241 1877.5,-260 1926.5,-260 1926.5,-241 1877.5,-241"/>
+<text text-anchor="middle" x="1902" y="-248" font-family="Helvetica,sans-Serif" font-size="10.00">cstring</text>
+</g>
+<!-- Node9&#45;&gt;Node29 -->
+<g id="edge49" class="edge"><title>Node9&#45;&gt;Node29</title>
+<path fill="none" stroke="midnightblue" d="M1948.26,-302.475C1940,-293.373 1926.72,-278.741 1916.51,-267.483"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1919.03,-265.062 1909.72,-260.009 1913.85,-269.766 1919.03,-265.062"/>
+</g>
+<!-- Node30 -->
+<g id="node30" class="node"><title>Node30</title>
+<polygon fill="white" stroke="#bfbfbf" points="1944.5,-241 1944.5,-260 2021.5,-260 2021.5,-241 1944.5,-241"/>
+<text text-anchor="middle" x="1983" y="-248" font-family="Helvetica,sans-Serif" font-size="10.00">initializer_list</text>
+</g>
+<!-- Node9&#45;&gt;Node30 -->
+<g id="edge50" class="edge"><title>Node9&#45;&gt;Node30</title>
+<path fill="none" stroke="midnightblue" d="M1959.87,-302.475C1963.8,-293.815 1970,-280.149 1974.99,-269.145"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1978.19,-270.562 1979.14,-260.009 1971.82,-267.669 1978.19,-270.562"/>
+</g>
+<!-- Node9&#45;&gt;Node31 -->
+<g id="edge53" class="edge"><title>Node9&#45;&gt;Node31</title>
+<path fill="none" stroke="midnightblue" d="M1889.96,-308.622C1621.28,-298.944 612.562,-262.613 361.072,-253.556"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="360.828,-250.045 350.708,-253.182 360.576,-257.04 360.828,-250.045"/>
+</g>
+<!-- Node11&#45;&gt;Node12 -->
+<g id="edge12" class="edge"><title>Node11&#45;&gt;Node12</title>
+<path fill="none" stroke="midnightblue" d="M1429.37,-240.974C1475.19,-229.573 1550.19,-209.575 1558,-199 1568.33,-185.014 1560.38,-165.498 1551.83,-151.506"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1554.5,-149.203 1546.03,-142.839 1548.68,-153.096 1554.5,-149.203"/>
+</g>
+<!-- Node11&#45;&gt;Node18 -->
+<g id="edge23" class="edge"><title>Node11&#45;&gt;Node18</title>
+<path fill="none" stroke="midnightblue" d="M1430.92,-240.957C1467.87,-231.998 1526.09,-216.767 1575,-199 1652.03,-171.018 1666.96,-153.561 1743,-123 1778.95,-108.552 1820.82,-94.0282 1849.92,-84.2895"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1851.27,-87.5297 1859.66,-81.0523 1849.06,-80.8875 1851.27,-87.5297"/>
+</g>
+<!-- Node11&#45;&gt;Node19 -->
+<g id="edge24" class="edge"><title>Node11&#45;&gt;Node19</title>
+<path fill="none" stroke="midnightblue" d="M1435.86,-240.942C1445.73,-238.958 1456.23,-236.878 1466,-235 1737.11,-182.857 1803.05,-157.218 2077,-123 2354.34,-88.358 2692.56,-76.334 2795.69,-73.3295"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2795.84,-76.8266 2805.74,-73.0438 2795.64,-69.8295 2795.84,-76.8266"/>
+</g>
+<!-- Node21 -->
+<g id="node21" class="node"><title>Node21</title>
+<polygon fill="white" stroke="#bfbfbf" points="1136.5,-179.5 1136.5,-198.5 1183.5,-198.5 1183.5,-179.5 1136.5,-179.5"/>
+<text text-anchor="middle" x="1160" y="-186.5" font-family="Helvetica,sans-Serif" font-size="10.00">cstdlib</text>
+</g>
+<!-- Node11&#45;&gt;Node21 -->
+<g id="edge22" class="edge"><title>Node11&#45;&gt;Node21</title>
+<path fill="none" stroke="midnightblue" d="M1360.47,-240.975C1315.92,-229.647 1237.68,-209.751 1193.26,-198.457"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1194.08,-195.055 1183.53,-195.983 1192.36,-201.839 1194.08,-195.055"/>
+</g>
+<!-- Node12&#45;&gt;Node10 -->
+<g id="edge13" class="edge"><title>Node12&#45;&gt;Node10</title>
+<path fill="none" stroke="midnightblue" d="M1597.69,-125.604C1704.47,-113.968 1928.94,-89.5064 2031.65,-78.3137"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2032.23,-81.7713 2041.79,-77.2085 2031.47,-74.8125 2032.23,-81.7713"/>
+</g>
+<!-- Node12&#45;&gt;Node13 -->
+<g id="edge14" class="edge"><title>Node12&#45;&gt;Node13</title>
+<path fill="none" stroke="midnightblue" d="M1480.45,-129.986C1336.36,-124.834 953.11,-109.945 634,-87 607.869,-85.121 579.289,-82.5684 553.922,-80.1284"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="553.926,-76.6124 543.635,-79.1283 553.249,-83.5795 553.926,-76.6124"/>
+</g>
+<!-- Node12&#45;&gt;Node17 -->
+<g id="edge18" class="edge"><title>Node12&#45;&gt;Node17</title>
+<path fill="none" stroke="midnightblue" d="M1480.3,-128.004C1311.29,-116.498 827.344,-83.552 697.43,-74.7077"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="697.542,-71.2074 687.327,-74.02 697.067,-78.1912 697.542,-71.2074"/>
+</g>
+<!-- Node12&#45;&gt;Node18 -->
+<g id="edge19" class="edge"><title>Node12&#45;&gt;Node18</title>
+<path fill="none" stroke="midnightblue" d="M1588.72,-123.475C1656.49,-111.854 1776.84,-91.2169 1841.68,-80.0989"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1842.33,-83.5389 1851.6,-78.3991 1841.15,-76.6396 1842.33,-83.5389"/>
+</g>
+<!-- Node12&#45;&gt;Node19 -->
+<g id="edge20" class="edge"><title>Node12&#45;&gt;Node19</title>
+<path fill="none" stroke="midnightblue" d="M1597.69,-129.289C1822.82,-118.889 2627,-81.7392 2795.78,-73.9421"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2796.14,-77.4294 2805.97,-73.4715 2795.82,-70.4368 2796.14,-77.4294"/>
+</g>
+<!-- Node20 -->
+<g id="node20" class="node"><title>Node20</title>
+<polygon fill="white" stroke="#bfbfbf" points="1438,-62 1438,-81 1488,-81 1488,-62 1438,-62"/>
+<text text-anchor="middle" x="1463" y="-69" font-family="Helvetica,sans-Serif" font-size="10.00">atomic</text>
+</g>
+<!-- Node12&#45;&gt;Node20 -->
+<g id="edge21" class="edge"><title>Node12&#45;&gt;Node20</title>
+<path fill="none" stroke="midnightblue" d="M1528.11,-123.475C1516.03,-114.02 1496.33,-98.5961 1481.76,-87.1871"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1483.9,-84.4177 1473.87,-81.0091 1479.59,-89.9295 1483.9,-84.4177"/>
+</g>
+<!-- Node14 -->
+<g id="node14" class="node"><title>Node14</title>
+<polygon fill="white" stroke="#bfbfbf" points="344,-0.5 344,-19.5 434,-19.5 434,-0.5 344,-0.5"/>
+<text text-anchor="middle" x="389" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">dlpack/dlpack.h</text>
+</g>
+<!-- Node13&#45;&gt;Node14 -->
+<g id="edge15" class="edge"><title>Node13&#45;&gt;Node14</title>
+<path fill="none" stroke="midnightblue" d="M458.434,-56.3993C444.12,-47.0402 425.388,-34.7924 410.989,-25.3771"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="412.526,-22.2009 402.241,-19.6578 408.696,-28.0597 412.526,-22.2009"/>
+</g>
+<!-- Node15 -->
+<g id="node15" class="node"><title>Node15</title>
+<polygon fill="white" stroke="#bfbfbf" points="452.5,-0.5 452.5,-19.5 507.5,-19.5 507.5,-0.5 452.5,-0.5"/>
+<text text-anchor="middle" x="480" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">stddef.h</text>
+</g>
+<!-- Node13&#45;&gt;Node15 -->
+<g id="edge16" class="edge"><title>Node13&#45;&gt;Node15</title>
+<path fill="none" stroke="midnightblue" d="M480,-56.3993C480,-48.4664 480,-38.458 480,-29.8583"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="483.5,-29.6577 480,-19.6578 476.5,-29.6578 483.5,-29.6577"/>
+</g>
+<!-- Node16 -->
+<g id="node16" class="node"><title>Node16</title>
+<polygon fill="white" stroke="#bfbfbf" points="525.5,-0.5 525.5,-19.5 578.5,-19.5 578.5,-0.5 525.5,-0.5"/>
+<text text-anchor="middle" x="552" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">stdint.h</text>
+</g>
+<!-- Node13&#45;&gt;Node16 -->
+<g id="edge17" class="edge"><title>Node13&#45;&gt;Node16</title>
+<path fill="none" stroke="midnightblue" d="M497.063,-56.3993C508.065,-47.3076 522.365,-35.4899 533.618,-26.1909"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="536.044,-28.726 541.523,-19.6578 531.585,-23.33 536.044,-28.726"/>
+</g>
+<!-- Node22&#45;&gt;Node10 -->
+<g id="edge27" class="edge"><title>Node22&#45;&gt;Node10</title>
+<path fill="none" stroke="midnightblue" d="M1575.86,-235.463C1681.83,-201.545 1950.29,-115.616 2048.39,-84.2182"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2049.69,-87.4763 2058.15,-81.0944 2047.56,-80.8095 2049.69,-87.4763"/>
+</g>
+<!-- Node22&#45;&gt;Node12 -->
+<g id="edge41" class="edge"><title>Node22&#45;&gt;Node12</title>
+<path fill="none" stroke="midnightblue" d="M1559.72,-235.456C1573.34,-226.935 1588.41,-214.665 1596,-199 1605.88,-178.621 1584.31,-159.684 1564.93,-147.568"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1566.7,-144.547 1556.3,-142.501 1563.16,-150.584 1566.7,-144.547"/>
+</g>
+<!-- Node22&#45;&gt;Node13 -->
+<g id="edge28" class="edge"><title>Node22&#45;&gt;Node13</title>
+<path fill="none" stroke="midnightblue" d="M1475.17,-236.759C1472.07,-236.145 1469,-235.554 1466,-235 1359.93,-215.417 1327.67,-235.001 1226,-199 1209.47,-193.148 1208.68,-184.412 1192,-179 1033.17,-127.447 983.095,-168.086 818,-143 723.581,-128.653 615.772,-104.858 547.809,-88.9314"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="548.201,-85.4279 537.665,-86.5432 546.597,-92.2417 548.201,-85.4279"/>
+</g>
+<!-- Node22&#45;&gt;Node17 -->
+<g id="edge44" class="edge"><title>Node22&#45;&gt;Node17</title>
+<path fill="none" stroke="midnightblue" d="M1475.4,-236.951C1410.08,-222.448 1311.05,-200.379 1307,-199 1287.05,-192.209 1283.37,-187.314 1264,-179 1201.66,-152.238 1187.85,-139.314 1122,-123 966.179,-84.3971 773.145,-75.2802 697.53,-73.1453"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="697.331,-69.639 687.244,-72.8783 697.149,-76.6367 697.331,-69.639"/>
+</g>
+<!-- Node22&#45;&gt;Node18 -->
+<g id="edge45" class="edge"><title>Node22&#45;&gt;Node18</title>
+<path fill="none" stroke="midnightblue" d="M1560.07,-235.463C1626.8,-202.098 1794.19,-118.406 1859.4,-85.7979"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1861.23,-88.7965 1868.61,-81.1938 1858.1,-82.5355 1861.23,-88.7965"/>
+</g>
+<!-- Node22&#45;&gt;Node19 -->
+<g id="edge46" class="edge"><title>Node22&#45;&gt;Node19</title>
+<path fill="none" stroke="midnightblue" d="M1588.72,-236.964C1705.26,-211.655 1980.35,-154.212 2214,-123 2435.73,-93.3809 2705.05,-78.4209 2795.6,-73.9623"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2795.92,-77.4508 2805.74,-73.4703 2795.58,-70.4591 2795.92,-77.4508"/>
+</g>
+<!-- Node23 -->
+<g id="node23" class="node"><title>Node23</title>
+<g id="a_node23"><a xlink:href="data__type_8h.html" target="_top" xlink:title="tvm/runtime/data_type.h">
+<polygon fill="white" stroke="black" points="827,-123.5 827,-142.5 963,-142.5 963,-123.5 827,-123.5"/>
+<text text-anchor="middle" x="895" y="-130.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/runtime/data_type.h</text>
+</a>
+</g>
+</g>
+<!-- Node22&#45;&gt;Node23 -->
+<g id="edge29" class="edge"><title>Node22&#45;&gt;Node23</title>
+<path fill="none" stroke="midnightblue" d="M1475.5,-236.967C1472.29,-236.292 1469.1,-235.632 1466,-235 1380.92,-217.683 1357.19,-223.832 1274,-199 1251.85,-192.39 1248.3,-185.052 1226,-179 1202.15,-172.529 1063.35,-154.729 973.227,-143.553"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="973.388,-140.046 963.033,-142.291 972.528,-146.993 973.388,-140.046"/>
+</g>
+<!-- Node24 -->
+<g id="node24" class="node"><title>Node24</title>
+<g id="a_node24"><a xlink:href="ndarray_8h.html" target="_top" xlink:title="A device&#45;independent managed NDArray abstraction. ">
+<polygon fill="white" stroke="red" points="1316.5,-179.5 1316.5,-198.5 1439.5,-198.5 1439.5,-179.5 1316.5,-179.5"/>
+<text text-anchor="middle" x="1378" y="-186.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/runtime/ndarray.h</text>
+</a>
+</g>
+</g>
+<!-- Node22&#45;&gt;Node24 -->
+<g id="edge34" class="edge"><title>Node22&#45;&gt;Node24</title>
+<path fill="none" stroke="midnightblue" d="M1495.5,-235.399C1469.43,-225.327 1434.71,-211.909 1409.78,-202.277"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1411,-198.997 1400.41,-198.658 1408.47,-205.527 1411,-198.997"/>
+</g>
+<!-- Node22&#45;&gt;Node25 -->
+<g id="edge47" class="edge"><title>Node22&#45;&gt;Node25</title>
+<path fill="none" stroke="midnightblue" d="M1588.59,-243.235C1667.14,-234.363 1813.6,-217.182 1938,-199 1991.07,-191.244 2003.83,-186.015 2057,-179 2218.92,-157.636 2413.63,-142.178 2490.95,-136.445"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2491.35,-139.925 2501.07,-135.701 2490.84,-132.944 2491.35,-139.925"/>
+</g>
+<!-- Node22&#45;&gt;Node26 -->
+<g id="edge42" class="edge"><title>Node22&#45;&gt;Node26</title>
+<path fill="none" stroke="midnightblue" d="M1475.21,-236.524C1472.1,-235.97 1469.02,-235.457 1466,-235 1284.62,-207.527 1065.72,-195.637 975.724,-191.656"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="975.793,-188.156 965.651,-191.22 975.49,-195.149 975.793,-188.156"/>
+</g>
+<!-- Node22&#45;&gt;Node27 -->
+<g id="edge43" class="edge"><title>Node22&#45;&gt;Node27</title>
+<path fill="none" stroke="midnightblue" d="M1588.94,-244.765C1704.68,-235.008 1963.91,-212.455 2052,-199 2053.46,-198.777 2054.95,-198.536 2056.45,-198.281"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2057.2,-201.701 2066.4,-196.442 2055.93,-194.818 2057.2,-201.701"/>
+</g>
+<!-- Node23&#45;&gt;Node10 -->
+<g id="edge30" class="edge"><title>Node23&#45;&gt;Node10</title>
+<path fill="none" stroke="midnightblue" d="M963.118,-130.195C1128.68,-125.555 1565.31,-111.801 1929,-87 1963.11,-84.6742 2001.32,-81.1372 2031.4,-78.1388"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2032.07,-81.5883 2041.67,-77.1036 2031.37,-74.6236 2032.07,-81.5883"/>
+</g>
+<!-- Node23&#45;&gt;Node13 -->
+<g id="edge31" class="edge"><title>Node23&#45;&gt;Node13</title>
+<path fill="none" stroke="midnightblue" d="M835.541,-123.475C761.282,-112.828 634.242,-94.6142 553.831,-83.0853"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="554.172,-79.5986 543.777,-81.6439 553.179,-86.5278 554.172,-79.5986"/>
+</g>
+<!-- Node23&#45;&gt;Node17 -->
+<g id="edge32" class="edge"><title>Node23&#45;&gt;Node17</title>
+<path fill="none" stroke="midnightblue" d="M862.047,-123.475C818.004,-112.081 740.46,-92.0212 696.939,-80.7625"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="697.721,-77.3495 687.163,-78.2334 695.967,-84.1264 697.721,-77.3495"/>
+</g>
+<!-- Node23&#45;&gt;Node18 -->
+<g id="edge33" class="edge"><title>Node23&#45;&gt;Node18</title>
+<path fill="none" stroke="midnightblue" d="M963.115,-127.91C1152.91,-116.515 1684.12,-84.621 1841.51,-75.171"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1841.99,-78.6488 1851.76,-74.5557 1841.57,-71.6614 1841.99,-78.6488"/>
+</g>
+<!-- Node24&#45;&gt;Node12 -->
+<g id="edge37" class="edge"><title>Node24&#45;&gt;Node12</title>
+<path fill="none" stroke="midnightblue" d="M1403.51,-179.444C1430.6,-170.359 1473.59,-155.939 1503.87,-145.783"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1505.24,-149.015 1513.61,-142.516 1503.01,-142.378 1505.24,-149.015"/>
+</g>
+<!-- Node24&#45;&gt;Node13 -->
+<g id="edge35" class="edge"><title>Node24&#45;&gt;Node13</title>
+<path fill="none" stroke="midnightblue" d="M1330.31,-179.47C1254.58,-166.124 1102.05,-140.071 972,-123 893.181,-112.654 670.992,-90.8554 554.063,-79.5838"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="554.06,-76.0673 543.77,-78.5926 553.388,-83.0351 554.06,-76.0673"/>
+</g>
+<!-- Node24&#45;&gt;Node19 -->
+<g id="edge39" class="edge"><title>Node24&#45;&gt;Node19</title>
+<path fill="none" stroke="midnightblue" d="M1386.77,-179.171C1402.19,-164.311 1435.89,-134.776 1471,-123 1535.8,-101.265 2597.84,-77.4285 2795.47,-73.1693"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2795.82,-76.6628 2805.74,-72.9489 2795.67,-69.6644 2795.82,-76.6628"/>
+</g>
+<!-- Node24&#45;&gt;Node20 -->
+<g id="edge38" class="edge"><title>Node24&#45;&gt;Node20</title>
+<path fill="none" stroke="midnightblue" d="M1382.72,-179.274C1389.77,-166.496 1403.76,-142.134 1418,-123 1427.09,-110.782 1438.52,-97.9834 1447.59,-88.3275"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1450.17,-90.689 1454.54,-81.0376 1445.11,-85.8569 1450.17,-90.689"/>
+</g>
+<!-- Node24&#45;&gt;Node23 -->
+<g id="edge36" class="edge"><title>Node24&#45;&gt;Node23</title>
+<path fill="none" stroke="midnightblue" d="M1316.34,-181.106C1228.98,-171.34 1069.21,-153.476 973.494,-142.776"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="973.62,-139.268 963.293,-141.635 972.843,-146.225 973.62,-139.268"/>
+</g>
+<!-- Node24&#45;&gt;Node25 -->
+<g id="edge40" class="edge"><title>Node24&#45;&gt;Node25</title>
+<path fill="none" stroke="midnightblue" d="M1439.67,-185.097C1649.36,-175.224 2330.72,-143.146 2491.01,-135.6"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2491.4,-139.086 2501.22,-135.119 2491.07,-132.094 2491.4,-139.086"/>
+</g>
+<!-- Node32&#45;&gt;Node11 -->
+<g id="edge82" class="edge"><title>Node32&#45;&gt;Node11</title>
+<path fill="none" stroke="midnightblue" d="M1199.96,-481.254C1221.51,-454.224 1289.26,-369.767 1348,-302 1358.07,-290.378 1369.75,-277.571 1378.81,-267.762"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1381.48,-270.03 1385.72,-260.32 1376.35,-265.267 1381.48,-270.03"/>
+</g>
+<!-- Node32&#45;&gt;Node12 -->
+<g id="edge84" class="edge"><title>Node32&#45;&gt;Node12</title>
+<path fill="none" stroke="midnightblue" d="M1190.78,-481.339C1180.7,-441.074 1141.07,-272.545 1174,-235 1214.5,-188.833 1390.87,-221.519 1448,-199 1476.87,-187.62 1505.17,-165.11 1522.35,-149.806"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1524.83,-152.283 1529.85,-142.952 1520.1,-147.117 1524.83,-152.283"/>
+</g>
+<!-- Node32&#45;&gt;Node13 -->
+<g id="edge80" class="edge"><title>Node32&#45;&gt;Node13</title>
+<path fill="none" stroke="midnightblue" d="M1133.25,-487.917C1041.46,-483.875 870.726,-472.783 817,-445 653.83,-360.621 531.02,-162.907 492.623,-95.4921"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="495.529,-93.5195 487.575,-86.5201 489.428,-96.9517 495.529,-93.5195"/>
+</g>
+<!-- Node32&#45;&gt;Node17 -->
+<g id="edge86" class="edge"><title>Node32&#45;&gt;Node17</title>
+<path fill="none" stroke="midnightblue" d="M1133.2,-488.561C1048.41,-485.445 898.673,-475.646 855,-445 727.168,-355.299 680.012,-153.335 668.21,-91.1078"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="671.636,-90.3871 666.406,-81.1733 664.749,-91.6377 671.636,-90.3871"/>
+</g>
+<!-- Node32&#45;&gt;Node18 -->
+<g id="edge87" class="edge"><title>Node32&#45;&gt;Node18</title>
+<path fill="none" stroke="midnightblue" d="M1213.39,-481.469C1233.62,-472.837 1265.36,-458.827 1292,-445 1431.51,-372.604 1464.86,-351.114 1597,-266 1617.11,-253.046 1621.25,-248.501 1641,-235 1683.83,-205.718 1813.14,-120.467 1864.57,-86.6043"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1866.53,-89.5058 1872.95,-81.0838 1862.68,-83.6589 1866.53,-89.5058"/>
+</g>
+<!-- Node32&#45;&gt;Node22 -->
+<g id="edge85" class="edge"><title>Node32&#45;&gt;Node22</title>
+<path fill="none" stroke="midnightblue" d="M1205.27,-481.374C1218.15,-472.317 1239,-457.659 1257,-445 1347.09,-381.633 1453.76,-306.566 1503.63,-271.464"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1505.83,-274.202 1511.99,-265.584 1501.8,-268.477 1505.83,-274.202"/>
+</g>
+<!-- Node32&#45;&gt;Node23 -->
+<g id="edge81" class="edge"><title>Node32&#45;&gt;Node23</title>
+<path fill="none" stroke="midnightblue" d="M1133.38,-486.093C1098.09,-481.09 1054.31,-469.89 1023,-445 926.203,-368.043 922.764,-319.026 893,-199 889.217,-183.744 890.14,-165.858 891.769,-152.714"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="895.269,-152.977 893.283,-142.57 888.345,-151.944 895.269,-152.977"/>
+</g>
+<!-- Node32&#45;&gt;Node24 -->
+<g id="edge83" class="edge"><title>Node32&#45;&gt;Node24</title>
+<path fill="none" stroke="midnightblue" d="M1188.31,-481.051C1180.79,-466.783 1165.53,-438.038 1152,-414 1111.23,-341.589 1044.1,-298.249 1098,-235 1124.23,-204.219 1232.09,-194.413 1306.02,-191.337"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1306.36,-194.826 1316.21,-190.946 1306.09,-187.831 1306.36,-194.826"/>
+</g>
+<!-- Node32&#45;&gt;Node25 -->
+<g id="edge88" class="edge"><title>Node32&#45;&gt;Node25</title>
+<path fill="none" stroke="midnightblue" d="M1241.15,-481.467C1320.79,-467.361 1484.98,-438.323 1624,-414 1926.96,-360.995 2022.85,-399.337 2300,-266 2377.83,-228.556 2464.57,-173.645 2503.75,-148.071"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2505.78,-150.922 2512.22,-142.511 2501.94,-145.069 2505.78,-150.922"/>
+</g>
+<!-- Node32&#45;&gt;Node33 -->
+<g id="edge64" class="edge"><title>Node32&#45;&gt;Node33</title>
+<path fill="none" stroke="midnightblue" d="M1153.89,-481.475C1109.98,-471.906 1038.02,-456.222 985.498,-444.775"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="986.114,-441.327 975.598,-442.617 984.623,-448.167 986.114,-441.327"/>
+</g>
+<!-- Node32&#45;&gt;Node35 -->
+<g id="edge74" class="edge"><title>Node32&#45;&gt;Node35</title>
+<path fill="none" stroke="midnightblue" d="M1177.96,-481.475C1163.34,-473.191 1140.63,-460.325 1121.69,-449.591"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1123.17,-446.408 1112.75,-444.523 1119.72,-452.498 1123.17,-446.408"/>
+</g>
+<!-- Node33&#45;&gt;Node8 -->
+<g id="edge65" class="edge"><title>Node33&#45;&gt;Node8</title>
+<path fill="none" stroke="midnightblue" d="M975.52,-420.094C990.878,-417.93 1007.57,-415.727 1023,-414 1191.83,-395.111 1391.11,-380.512 1494.27,-373.527"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1494.51,-377.019 1504.25,-372.855 1494.04,-370.035 1494.51,-377.019"/>
+</g>
+<!-- Node33&#45;&gt;Node17 -->
+<g id="edge73" class="edge"><title>Node33&#45;&gt;Node17</title>
+<path fill="none" stroke="midnightblue" d="M900.707,-414.469C888.32,-404.949 872.308,-391.651 860,-378 839.859,-355.661 837.726,-347.639 822,-322 798.911,-284.356 798.298,-271.876 774,-235 762.848,-218.074 757.648,-215.589 746,-199 723.042,-166.305 719.594,-156.612 698,-123 690.793,-111.782 682.592,-99.2319 676.169,-89.4492"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="679.065,-87.4832 670.646,-81.0517 673.217,-91.3299 679.065,-87.4832"/>
+</g>
+<!-- Node33&#45;&gt;Node23 -->
+<g id="edge72" class="edge"><title>Node33&#45;&gt;Node23</title>
+<path fill="none" stroke="midnightblue" d="M914.905,-414.254C902.453,-378.586 870.712,-282.327 860,-199 858.867,-190.184 857.115,-187.408 860,-179 863.719,-168.161 871.233,-157.922 878.349,-149.957"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="881.054,-152.192 885.444,-142.55 875.999,-147.35 881.054,-152.192"/>
+</g>
+<!-- Node34 -->
+<g id="node34" class="node"><title>Node34</title>
+<g id="a_node34"><a xlink:href="functor_8h.html" target="_top" xlink:title="Defines the Functor data structures. ">
+<polygon fill="white" stroke="black" points="2256.5,-179.5 2256.5,-198.5 2363.5,-198.5 2363.5,-179.5 2256.5,-179.5"/>
+<text text-anchor="middle" x="2310" y="-186.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/node/functor.h</text>
+</a>
+</g>
+</g>
+<!-- Node33&#45;&gt;Node34 -->
+<g id="edge66" class="edge"><title>Node33&#45;&gt;Node34</title>
+<path fill="none" stroke="midnightblue" d="M975.576,-417.498C1057.88,-401.654 1217.19,-372.705 1354,-358 1503.79,-341.898 1887.03,-366.377 2031,-322 2047.39,-316.948 2048.78,-309.909 2064,-302 2099.32,-283.646 2109.72,-282.368 2146,-266 2194.22,-244.247 2250.04,-218.19 2282.55,-202.928"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2284.29,-205.976 2291.85,-198.555 2281.31,-199.641 2284.29,-205.976"/>
+</g>
+<!-- Node34&#45;&gt;Node10 -->
+<g id="edge67" class="edge"><title>Node34&#45;&gt;Node10</title>
+<path fill="none" stroke="midnightblue" d="M2297.3,-179.357C2277.77,-166.255 2238.93,-140.993 2204,-123 2175.42,-108.275 2141.56,-94.2159 2117.28,-84.6885"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2118.42,-81.3758 2107.83,-81.0187 2115.88,-87.9011 2118.42,-81.3758"/>
+</g>
+<!-- Node34&#45;&gt;Node12 -->
+<g id="edge68" class="edge"><title>Node34&#45;&gt;Node12</title>
+<path fill="none" stroke="midnightblue" d="M2256.4,-184.246C2119.95,-174.689 1759.55,-149.447 1607.85,-138.822"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1607.95,-135.32 1597.73,-138.113 1607.46,-142.303 1607.95,-135.32"/>
+</g>
+<!-- Node34&#45;&gt;Node18 -->
+<g id="edge69" class="edge"><title>Node34&#45;&gt;Node18</title>
+<path fill="none" stroke="midnightblue" d="M2289.01,-179.437C2255.45,-165.988 2187.43,-139.727 2128,-123 2059.73,-103.784 1978.76,-88.3343 1929.94,-79.7951"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1930.47,-76.3358 1920.02,-78.0789 1929.28,-83.2332 1930.47,-76.3358"/>
+</g>
+<!-- Node34&#45;&gt;Node19 -->
+<g id="edge70" class="edge"><title>Node34&#45;&gt;Node19</title>
+<path fill="none" stroke="midnightblue" d="M2315.96,-179.431C2326.55,-164.964 2350.19,-136.006 2378,-123 2452.6,-88.1154 2706.87,-76.4831 2795.9,-73.4276"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2796.04,-76.925 2805.92,-73.0965 2795.81,-69.9289 2796.04,-76.925"/>
+</g>
+<!-- Node34&#45;&gt;Node25 -->
+<g id="edge71" class="edge"><title>Node34&#45;&gt;Node25</title>
+<path fill="none" stroke="midnightblue" d="M2344.07,-179.444C2384.48,-169.294 2451.41,-152.483 2491.55,-142.402"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2492.54,-145.761 2501.39,-139.931 2490.84,-138.972 2492.54,-145.761"/>
+</g>
+<!-- Node35&#45;&gt;Node8 -->
+<g id="edge75" class="edge"><title>Node35&#45;&gt;Node8</title>
+<path fill="none" stroke="midnightblue" d="M1143.53,-421.558C1230.61,-410.674 1399.12,-389.609 1494.25,-377.719"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1494.86,-381.17 1504.35,-376.457 1493.99,-374.224 1494.86,-381.17"/>
+</g>
+<!-- Node35&#45;&gt;Node17 -->
+<g id="edge79" class="edge"><title>Node35&#45;&gt;Node17</title>
+<path fill="none" stroke="midnightblue" d="M1058.95,-414.43C1040.4,-404.994 1016.14,-391.805 996,-378 857.983,-283.385 839.49,-239.116 719,-123 706.774,-111.218 692.765,-98.1282 682.079,-88.2282"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="684.361,-85.5705 674.641,-81.3539 679.61,-90.7114 684.361,-85.5705"/>
+</g>
+<!-- Node35&#45;&gt;Node23 -->
+<g id="edge77" class="edge"><title>Node35&#45;&gt;Node23</title>
+<path fill="none" stroke="midnightblue" d="M1084.82,-414.376C1074.97,-373.413 1041.49,-252.799 974,-179 961.209,-165.014 943.036,-154.248 927.345,-146.758"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="928.519,-143.448 917.965,-142.518 925.636,-149.827 928.519,-143.448"/>
+</g>
+<!-- Node35&#45;&gt;Node26 -->
+<g id="edge78" class="edge"><title>Node35&#45;&gt;Node26</title>
+<path fill="none" stroke="midnightblue" d="M1057.37,-414.293C1041.86,-405.726 1023.86,-393.464 1012,-378 971.211,-324.796 993.517,-295.193 964,-235 959.194,-225.2 952.567,-215.021 946.763,-206.828"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="949.433,-204.549 940.702,-198.548 943.784,-208.684 949.433,-204.549"/>
+</g>
+<!-- Node35&#45;&gt;Node34 -->
+<g id="edge76" class="edge"><title>Node35&#45;&gt;Node34</title>
+<path fill="none" stroke="midnightblue" d="M1143.68,-416.882C1221.81,-401.033 1368.59,-372.903 1495,-358 1746.65,-328.332 1817.22,-379.519 2064,-322 2086.51,-316.754 2090.4,-310.228 2112,-302 2157.71,-284.585 2173.23,-289.732 2216,-266 2246.24,-249.223 2276.49,-222.56 2294.21,-205.686"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2296.68,-208.165 2301.43,-198.692 2291.81,-203.138 2296.68,-208.165"/>
+</g>
+<!-- Node36&#45;&gt;Node34 -->
+<g id="edge90" class="edge"><title>Node36&#45;&gt;Node34</title>
+<path fill="none" stroke="midnightblue" d="M1616.25,-481.378C1619.04,-465.424 1627.34,-431.348 1649,-414 1689.09,-381.895 2052.62,-336.136 2102,-322 2170.41,-302.414 2194.84,-308.39 2252,-266 2273.17,-250.297 2290.4,-224.824 2300.43,-207.75"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2303.61,-209.233 2305.47,-198.804 2297.51,-205.794 2303.61,-209.233"/>
+</g>
+<!-- Node37 -->
+<g id="node37" class="node"><title>Node37</title>
+<polygon fill="white" stroke="#bfbfbf" points="1658.5,-420 1658.5,-439 1717.5,-439 1717.5,-420 1658.5,-420"/>
+<text text-anchor="middle" x="1688" y="-427" font-family="Helvetica,sans-Serif" font-size="10.00">iostream</text>
+</g>
+<!-- Node36&#45;&gt;Node37 -->
+<g id="edge91" class="edge"><title>Node36&#45;&gt;Node37</title>
+<path fill="none" stroke="midnightblue" d="M1625.46,-481.475C1636.95,-472.108 1655.63,-456.884 1669.59,-445.508"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1672.02,-448.04 1677.56,-439.009 1667.6,-442.614 1672.02,-448.04"/>
+</g>
+<!-- Node38&#45;&gt;Node17 -->
+<g id="edge134" class="edge"><title>Node38&#45;&gt;Node17</title>
+<path fill="none" stroke="midnightblue" d="M1526.31,-823.835C1330.42,-815.604 642.481,-786.449 596,-781 463.455,-765.462 428.513,-764.371 301,-725 231.967,-703.685 152,-732.249 152,-660 152,-660 152,-660 152,-428.5 152,-348.041 114,-331.959 114,-251.5 114,-251.5 114,-251.5 114,-188 114,-74.0548 250.576,-146.835 362,-123 459.985,-102.039 577.358,-84.6435 632.877,-76.8707"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="633.396,-80.3323 642.819,-75.4894 632.432,-73.3989 633.396,-80.3323"/>
+</g>
+<!-- Node38&#45;&gt;Node31 -->
+<g id="edge135" class="edge"><title>Node38&#45;&gt;Node31</title>
+<path fill="none" stroke="midnightblue" d="M1526.28,-823.221C1296.7,-810.709 378.736,-758.735 328,-725 241.311,-667.358 304,-596.103 304,-492 304,-492 304,-492 304,-367 304,-332.864 304,-293.052 304,-270.209"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="307.5,-270.193 304,-260.193 300.5,-270.193 307.5,-270.193"/>
+</g>
+<!-- Node39 -->
+<g id="node39" class="node"><title>Node39</title>
+<g id="a_node39"><a xlink:href="with_8h.html" target="_top" xlink:title="RAII wrapper function to enter and exit a context object similar to python&#39;s with syntax...">
+<polygon fill="white" stroke="black" points="2734,-358.5 2734,-377.5 2840,-377.5 2840,-358.5 2734,-358.5"/>
+<text text-anchor="middle" x="2787" y="-365.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/support/with.h</text>
+</a>
+</g>
+</g>
+<!-- Node38&#45;&gt;Node39 -->
+<g id="edge103" class="edge"><title>Node38&#45;&gt;Node39</title>
+<path fill="none" stroke="midnightblue" d="M1629.79,-824.173C1864.84,-815.545 2820,-776.747 2820,-716 2820,-716 2820,-716 2820,-658 2820,-555.58 2799.29,-434.054 2790.68,-387.978"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2794.08,-387.117 2788.77,-377.947 2787.2,-388.425 2794.08,-387.117"/>
+</g>
+<!-- Node40 -->
+<g id="node40" class="node"><title>Node40</title>
+<g id="a_node40"><a xlink:href="tensor_8h.html" target="_top" xlink:title="Dataflow tensor object. ">
+<polygon fill="white" stroke="red" points="1677,-705.5 1677,-724.5 1767,-724.5 1767,-705.5 1677,-705.5"/>
+<text text-anchor="middle" x="1722" y="-712.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/te/tensor.h</text>
+</a>
+</g>
+</g>
+<!-- Node38&#45;&gt;Node40 -->
+<g id="edge106" class="edge"><title>Node38&#45;&gt;Node40</title>
+<path fill="none" stroke="midnightblue" d="M1619.43,-817.431C1642.8,-810.809 1671.19,-799.543 1691,-781 1704.38,-768.473 1712.61,-748.972 1717.19,-734.596"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1720.6,-735.38 1720.01,-724.802 1713.88,-733.443 1720.6,-735.38"/>
+</g>
+<!-- Node41 -->
+<g id="node41" class="node"><title>Node41</title>
+<g id="a_node41"><a xlink:href="tir_2expr_8h.html" target="_top" xlink:title="TIR expressions. ">
+<polygon fill="white" stroke="red" points="1494,-649.5 1494,-668.5 1574,-668.5 1574,-649.5 1494,-649.5"/>
+<text text-anchor="middle" x="1534" y="-656.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/tir/expr.h</text>
+</a>
+</g>
+</g>
+<!-- Node38&#45;&gt;Node41 -->
+<g id="edge133" class="edge"><title>Node38&#45;&gt;Node41</title>
+<path fill="none" stroke="midnightblue" d="M1572.05,-817.466C1566.26,-808.719 1557.65,-794.521 1553,-781 1541.05,-746.268 1536.57,-703.318 1534.93,-679.052"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1538.41,-678.538 1534.33,-668.759 1531.42,-678.946 1538.41,-678.538"/>
+</g>
+<!-- Node43 -->
+<g id="node43" class="node"><title>Node43</title>
+<g id="a_node43"><a xlink:href="tensor__intrin_8h.html" target="_top" xlink:title="Tensor intrinsic operations. ">
+<polygon fill="white" stroke="red" points="1562,-761.5 1562,-780.5 1682,-780.5 1682,-761.5 1562,-761.5"/>
+<text text-anchor="middle" x="1622" y="-768.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/te/tensor_intrin.h</text>
+</a>
+</g>
+</g>
+<!-- Node38&#45;&gt;Node43 -->
+<g id="edge130" class="edge"><title>Node38&#45;&gt;Node43</title>
+<path fill="none" stroke="midnightblue" d="M1585.27,-817.083C1591.54,-809.377 1600.79,-798.033 1608.43,-788.653"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1611.27,-790.714 1614.87,-780.751 1605.84,-786.293 1611.27,-790.714"/>
+</g>
+<!-- Node39&#45;&gt;Node10 -->
+<g id="edge104" class="edge"><title>Node39&#45;&gt;Node10</title>
+<path fill="none" stroke="midnightblue" d="M2789.95,-358.244C2798.97,-329.732 2823.39,-237.998 2786,-179 2755.14,-130.305 2724.62,-138.173 2669,-123 2569.69,-95.9056 2262.61,-80.0961 2138.18,-74.6566"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2138.27,-71.1573 2128.13,-74.2225 2137.97,-78.1508 2138.27,-71.1573"/>
+</g>
+<!-- Node39&#45;&gt;Node19 -->
+<g id="edge105" class="edge"><title>Node39&#45;&gt;Node19</title>
+<path fill="none" stroke="midnightblue" d="M2810.11,-358.425C2826.77,-351.126 2848.6,-339.087 2862,-322 2897.31,-276.976 2891.46,-255.575 2900,-199 2905.04,-165.601 2915.68,-152.917 2900,-123 2891.05,-105.932 2873.43,-93.4892 2857.74,-85.2253"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2858.84,-81.8656 2848.32,-80.6159 2855.76,-88.1537 2858.84,-81.8656"/>
+</g>
+<!-- Node40&#45;&gt;Node8 -->
+<g id="edge107" class="edge"><title>Node40&#45;&gt;Node8</title>
+<path fill="none" stroke="midnightblue" d="M1725.24,-705.301C1731.79,-686.889 1746,-642.507 1746,-604 1746,-604 1746,-604 1746,-490 1746,-455.072 1750.53,-438.865 1726,-414 1701.95,-389.624 1665.93,-378.138 1633.95,-372.848"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1634.14,-369.338 1623.73,-371.34 1633.12,-376.263 1634.14,-369.338"/>
+</g>
+<!-- Node40&#45;&gt;Node17 -->
+<g id="edge126" class="edge"><title>Node40&#45;&gt;Node17</title>
+<path fill="none" stroke="midnightblue" d="M1676.88,-713.914C1455.32,-713.302 491.118,-708.38 442,-669 356.55,-600.491 380,-540.023 380,-430.5 380,-430.5 380,-430.5 380,-249.5 380,-186.888 390.276,-158.283 442,-123 472.82,-101.976 578.606,-84.6 632.654,-76.8494"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="633.322,-80.29 642.736,-75.4294 632.346,-73.3584 633.322,-80.29"/>
+</g>
+<!-- Node40&#45;&gt;Node18 -->
+<g id="edge127" class="edge"><title>Node40&#45;&gt;Node18</title>
+<path fill="none" stroke="midnightblue" d="M1767.08,-713.369C1930.61,-710.834 2486.9,-699.996 2560,-669 2599.09,-652.427 2630,-646.455 2630,-604 2630,-604 2630,-604 2630,-490 2630,-323.693 2681.98,-232.718 2557,-123 2513.14,-84.4985 2091.16,-91.8649 2033,-87 1998.52,-84.1155 1959.55,-80.2435 1930.4,-77.2264"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1930.44,-73.7118 1920.13,-76.1568 1929.72,-80.6741 1930.44,-73.7118"/>
+</g>
+<!-- Node40&#45;&gt;Node19 -->
+<g id="edge128" class="edge"><title>Node40&#45;&gt;Node19</title>
+<path fill="none" stroke="midnightblue" d="M1767.09,-713.612C1935.41,-711.903 2521.26,-703.507 2597,-669 2802.88,-575.204 2847.79,-484.086 2908,-266 2924.95,-204.587 2950.32,-177.903 2918,-123 2905.16,-101.189 2879.13,-88.1274 2858.18,-80.7701"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2858.98,-77.35 2848.39,-77.6033 2856.83,-84.0104 2858.98,-77.35"/>
+</g>
+<!-- Node40&#45;&gt;Node25 -->
+<g id="edge129" class="edge"><title>Node40&#45;&gt;Node25</title>
+<path fill="none" stroke="midnightblue" d="M1767.27,-713.262C1926.31,-710.422 2453.58,-698.83 2523,-669 2561.71,-652.367 2592,-646.131 2592,-604 2592,-604 2592,-604 2592,-428.5 2592,-321.219 2549.2,-197.31 2532.02,-151.876"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2535.27,-150.587 2528.41,-142.511 2528.74,-153.101 2535.27,-150.587"/>
+</g>
+<!-- Node40&#45;&gt;Node41 -->
+<g id="edge108" class="edge"><title>Node40&#45;&gt;Node41</title>
+<path fill="none" stroke="midnightblue" d="M1692.21,-705.444C1660.17,-696.241 1609.07,-681.562 1573.65,-671.388"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1574.23,-667.913 1563.65,-668.516 1572.29,-674.641 1574.23,-667.913"/>
+</g>
+<!-- Node41&#45;&gt;Node7 -->
+<g id="edge118" class="edge"><title>Node41&#45;&gt;Node7</title>
+<path fill="none" stroke="midnightblue" d="M1523.97,-649.145C1509.76,-636.614 1482.94,-613.002 1460,-593 1448.61,-583.07 1435.77,-571.96 1425.7,-563.263"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1427.85,-560.489 1417.99,-556.605 1423.27,-565.788 1427.85,-560.489"/>
+</g>
+<!-- Node41&#45;&gt;Node8 -->
+<g id="edge116" class="edge"><title>Node41&#45;&gt;Node8</title>
+<path fill="none" stroke="midnightblue" d="M1533.85,-649.486C1533.49,-623.888 1533.17,-545.415 1541,-481 1545.04,-447.776 1553.74,-409.731 1559.2,-387.629"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1562.67,-388.186 1561.72,-377.634 1555.88,-386.474 1562.67,-388.186"/>
+</g>
+<!-- Node41&#45;&gt;Node13 -->
+<g id="edge119" class="edge"><title>Node41&#45;&gt;Node13</title>
+<path fill="none" stroke="midnightblue" d="M1493.78,-658.244C1326.68,-658.956 686.833,-658.587 491,-613 294.756,-567.317 76,-631.991 76,-430.5 76,-430.5 76,-430.5 76,-188 76,-157.205 75.9504,-142.234 100,-123 145.868,-86.3156 309.126,-76.2106 406.097,-73.4723"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="406.23,-76.9701 416.135,-73.2084 406.046,-69.9725 406.23,-76.9701"/>
+</g>
+<!-- Node41&#45;&gt;Node17 -->
+<g id="edge123" class="edge"><title>Node41&#45;&gt;Node17</title>
+<path fill="none" stroke="midnightblue" d="M1493.85,-658.545C1336.37,-659.946 762.427,-657.916 618,-557 535.951,-499.67 494,-469.094 494,-369 494,-369 494,-369 494,-188 494,-121.61 583.609,-90.8136 633.092,-78.8691"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="634.029,-82.2451 642.995,-76.6004 632.466,-75.4219 634.029,-82.2451"/>
+</g>
+<!-- Node41&#45;&gt;Node19 -->
+<g id="edge125" class="edge"><title>Node41&#45;&gt;Node19</title>
+<path fill="none" stroke="midnightblue" d="M1574.13,-656.497C1688.43,-651.965 2014.14,-637.234 2118,-613 2193.55,-595.371 2280,-625.579 2280,-548 2280,-548 2280,-548 2280,-490 2280,-228.47 2680,-108.927 2795.89,-79.7806"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2797.02,-83.1066 2805.89,-77.3136 2795.34,-76.3102 2797.02,-83.1066"/>
+</g>
+<!-- Node41&#45;&gt;Node23 -->
+<g id="edge120" class="edge"><title>Node41&#45;&gt;Node23</title>
+<path fill="none" stroke="midnightblue" d="M1493.91,-656.383C1331.12,-649.416 725.564,-619.437 670,-557 548.581,-420.561 800.973,-206.984 875.256,-148.968"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="877.621,-151.563 883.394,-142.68 873.341,-146.024 877.621,-151.563"/>
+</g>
+<!-- Node41&#45;&gt;Node28 -->
+<g id="edge121" class="edge"><title>Node41&#45;&gt;Node28</title>
+<path fill="none" stroke="midnightblue" d="M1556.99,-649.373C1576.21,-641.539 1603.81,-628.806 1625,-613 1699.6,-557.359 1723.03,-534.075 1750,-445 1768.63,-383.467 1760.52,-305.802 1755.24,-270.508"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1758.64,-269.569 1753.6,-260.247 1751.73,-270.674 1758.64,-269.569"/>
+</g>
+<!-- Node41&#45;&gt;Node31 -->
+<g id="edge124" class="edge"><title>Node41&#45;&gt;Node31</title>
+<path fill="none" stroke="midnightblue" d="M1493.87,-657.287C1310.64,-653.896 560.514,-638.5 518,-613 449.578,-571.96 341.794,-337.011 311.911,-269.586"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="315.036,-267.999 307.801,-260.259 308.63,-270.821 315.036,-267.999"/>
+</g>
+<!-- Node41&#45;&gt;Node34 -->
+<g id="edge117" class="edge"><title>Node41&#45;&gt;Node34</title>
+<path fill="none" stroke="midnightblue" d="M1574.09,-656.039C1723.87,-648.187 2242,-616.104 2242,-548 2242,-548 2242,-548 2242,-490 2242,-380.736 2285.43,-254.501 2302.88,-208.212"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2306.22,-209.261 2306.53,-198.671 2299.69,-206.755 2306.22,-209.261"/>
+</g>
+<!-- Node41&#45;&gt;Node37 -->
+<g id="edge122" class="edge"><title>Node41&#45;&gt;Node37</title>
+<path fill="none" stroke="midnightblue" d="M1548.34,-649.236C1580.89,-628.389 1659.77,-572.222 1689,-501 1695.82,-484.396 1694.5,-463.685 1692.12,-449.018"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1695.55,-448.306 1690.22,-439.149 1688.68,-449.63 1695.55,-448.306"/>
+</g>
+<!-- Node42 -->
+<g id="node42" class="node"><title>Node42</title>
+<g id="a_node42"><a xlink:href="ir_2expr_8h.html" target="_top" xlink:title="Base expr nodes in TVM. ">
+<polygon fill="white" stroke="red" points="1897.5,-593.5 1897.5,-612.5 1974.5,-612.5 1974.5,-593.5 1897.5,-593.5"/>
+<text text-anchor="middle" x="1936" y="-600.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ir/expr.h</text>
+</a>
+</g>
+</g>
+<!-- Node41&#45;&gt;Node42 -->
+<g id="edge109" class="edge"><title>Node41&#45;&gt;Node42</title>
+<path fill="none" stroke="midnightblue" d="M1574.01,-652.625C1648.14,-642.668 1806.56,-621.387 1886.98,-610.584"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1887.88,-613.995 1897.33,-609.195 1886.95,-607.057 1887.88,-613.995"/>
+</g>
+<!-- Node42&#45;&gt;Node7 -->
+<g id="edge111" class="edge"><title>Node42&#45;&gt;Node7</title>
+<path fill="none" stroke="midnightblue" d="M1897.17,-598.029C1805.7,-588.674 1576.16,-565.198 1467.19,-554.054"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1467.34,-550.55 1457.03,-553.015 1466.63,-557.514 1467.34,-550.55"/>
+</g>
+<!-- Node42&#45;&gt;Node8 -->
+<g id="edge110" class="edge"><title>Node42&#45;&gt;Node8</title>
+<path fill="none" stroke="midnightblue" d="M1932.58,-593.3C1919.14,-559.516 1869.03,-437.726 1836,-414 1804.41,-391.309 1703.32,-379.293 1633.7,-373.543"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1633.91,-370.049 1623.67,-372.739 1633.35,-377.026 1633.91,-370.049"/>
+</g>
+<!-- Node42&#45;&gt;Node12 -->
+<g id="edge112" class="edge"><title>Node42&#45;&gt;Node12</title>
+<path fill="none" stroke="midnightblue" d="M1934.54,-593.499C1932.3,-581 1927.69,-556.983 1922,-537 1905.39,-478.69 1900.78,-461.421 1863,-414 1839.19,-384.119 1642.36,-202.195 1612,-179 1596.76,-167.359 1578.38,-156.041 1563.88,-147.668"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1565.4,-144.509 1554.98,-142.617 1561.94,-150.597 1565.4,-144.509"/>
+</g>
+<!-- Node42&#45;&gt;Node17 -->
+<g id="edge114" class="edge"><title>Node42&#45;&gt;Node17</title>
+<path fill="none" stroke="midnightblue" d="M1897.35,-602.503C1671.46,-604.436 532,-599.967 532,-313 532,-313 532,-313 532,-188 532,-157.205 535.114,-145.631 556,-123 576.545,-100.738 608.866,-87.4813 632.986,-80.1773"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="634.098,-83.5 642.763,-77.4026 632.187,-76.7659 634.098,-83.5"/>
+</g>
+<!-- Node42&#45;&gt;Node18 -->
+<g id="edge115" class="edge"><title>Node42&#45;&gt;Node18</title>
+<path fill="none" stroke="midnightblue" d="M1946.16,-593.462C1998.69,-548.271 2233.3,-333.247 2132,-179 2087.05,-110.561 1987.7,-85.8904 1929.95,-77.1528"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1930.41,-73.6832 1920.01,-75.7452 1929.42,-80.6139 1930.41,-73.6832"/>
+</g>
+<!-- Node42&#45;&gt;Node28 -->
+<g id="edge113" class="edge"><title>Node42&#45;&gt;Node28</title>
+<path fill="none" stroke="midnightblue" d="M1939.58,-593.204C1950.32,-565.319 1979.81,-477.02 1950,-414 1914.59,-339.126 1825.9,-287.186 1780.2,-264.441"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1781.66,-261.258 1771.13,-260.033 1778.6,-267.554 1781.66,-261.258"/>
+</g>
+<!-- Node43&#45;&gt;Node17 -->
+<g id="edge132" class="edge"><title>Node43&#45;&gt;Node17</title>
+<path fill="none" stroke="midnightblue" d="M1561.96,-768.058C1332.2,-760.209 516.691,-728.37 418,-669 258.089,-572.802 170.584,-483.496 214,-302 241.753,-185.982 303.943,-169.019 414,-123 453.282,-106.575 574.336,-86.4521 632.776,-77.3642"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="633.576,-80.7824 642.925,-75.7992 632.509,-73.8641 633.576,-80.7824"/>
+</g>
+<!-- Node43&#45;&gt;Node40 -->
+<g id="edge131" class="edge"><title>Node43&#45;&gt;Node40</title>
+<path fill="none" stroke="midnightblue" d="M1638.07,-761.324C1653.96,-752.743 1678.51,-739.486 1696.96,-729.522"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1698.84,-732.486 1705.97,-724.655 1695.51,-726.326 1698.84,-732.486"/>
+</g>
+<!-- Node45 -->
+<g id="node45" class="node"><title>Node45</title>
+<g id="a_node45"><a xlink:href="compute__dag_8h.html" target="_top" xlink:title="The auto&#45;scheduler&#39;s computational graph and related program analyses. ">
+<polygon fill="white" stroke="black" points="2718,-1007.5 2718,-1037.5 2830,-1037.5 2830,-1007.5 2718,-1007.5"/>
+<text text-anchor="start" x="2726" y="-1025.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/auto_scheduler</text>
+<text text-anchor="middle" x="2774" y="-1014.5" font-family="Helvetica,sans-Serif" font-size="10.00">/compute_dag.h</text>
+</a>
+</g>
+</g>
+<!-- Node44&#45;&gt;Node45 -->
+<g id="edge142" class="edge"><title>Node44&#45;&gt;Node45</title>
+<path fill="none" stroke="midnightblue" d="M2806.89,-1074.4C2801.55,-1066.13 2794.68,-1055.51 2788.6,-1046.1"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2791.46,-1044.08 2783.1,-1037.58 2785.58,-1047.88 2791.46,-1044.08"/>
+</g>
+<!-- Node47 -->
+<g id="node47" class="node"><title>Node47</title>
+<g id="a_node47"><a xlink:href="target_8h.html" target="_top" xlink:title="Compilation target object. ">
+<polygon fill="white" stroke="black" points="2525.5,-705.5 2525.5,-724.5 2634.5,-724.5 2634.5,-705.5 2525.5,-705.5"/>
+<text text-anchor="middle" x="2580" y="-712.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/target/target.h</text>
+</a>
+</g>
+</g>
+<!-- Node44&#45;&gt;Node47 -->
+<g id="edge150" class="edge"><title>Node44&#45;&gt;Node47</title>
+<path fill="none" stroke="midnightblue" d="M2825.4,-1074.41C2835.13,-1057.97 2847.79,-1030.08 2839,-1007 2789.65,-877.335 2653.09,-768.625 2600.77,-730.544"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2602.73,-727.644 2592.57,-724.653 2598.65,-733.329 2602.73,-727.644"/>
+</g>
+<!-- Node45&#45;&gt;Node3 -->
+<g id="edge143" class="edge"><title>Node45&#45;&gt;Node3</title>
+<path fill="none" stroke="midnightblue" d="M2717.86,-1016.18C2592.33,-1004.29 2289.42,-975.585 2154.62,-962.812"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2154.72,-959.306 2144.43,-961.847 2154.06,-966.275 2154.72,-959.306"/>
+</g>
+<!-- Node45&#45;&gt;Node13 -->
+<g id="edge144" class="edge"><title>Node45&#45;&gt;Node13</title>
+<path fill="none" stroke="midnightblue" d="M2717.84,-1021.75C2374.34,-1023.11 563.715,-1027.52 324,-971 241.666,-951.587 152,-974.092 152,-889.5 152,-889.5 152,-889.5 152,-826 152,-643.066 38,-613.434 38,-430.5 38,-430.5 38,-430.5 38,-311 38,-225.481 13.6281,-178.137 79,-123 127.032,-82.4883 304.126,-73.9439 406.187,-72.4662"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="406.474,-75.963 416.429,-72.3379 406.386,-68.9635 406.474,-75.963"/>
+</g>
+<!-- Node45&#45;&gt;Node19 -->
+<g id="edge148" class="edge"><title>Node45&#45;&gt;Node19</title>
+<path fill="none" stroke="midnightblue" d="M2830.25,-1014.56C2864.53,-1007.99 2907.63,-995.316 2939,-971 2966.59,-949.614 2963.2,-934.601 2980,-904 3035.96,-802.074 3055.69,-778.434 3095,-669 3131.84,-566.431 3152,-539.485 3152,-430.5 3152,-430.5 3152,-430.5 3152,-188 3152,-149.868 3129.04,-142.033 3096,-123 3018.96,-78.6218 2910.83,-72.1377 2858.22,-71.8617"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2858.16,-68.3617 2848.16,-71.8827 2858.17,-75.3617 2858.16,-68.3617"/>
+</g>
+<!-- Node45&#45;&gt;Node25 -->
+<g id="edge149" class="edge"><title>Node45&#45;&gt;Node25</title>
+<path fill="none" stroke="midnightblue" d="M2801.68,-1007.33C2837.68,-986.691 2896,-944.734 2896,-889.5 2896,-889.5 2896,-889.5 2896,-714 2896,-634.782 2921.92,-616.065 2917,-537 2907.9,-390.8 2892.14,-334.89 2785,-235 2719.42,-173.858 2612.69,-148.325 2558.65,-138.876"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2559.01,-135.388 2548.57,-137.195 2557.86,-142.293 2559.01,-135.388"/>
+</g>
+<!-- Node45&#45;&gt;Node31 -->
+<g id="edge146" class="edge"><title>Node45&#45;&gt;Node31</title>
+<path fill="none" stroke="midnightblue" d="M2717.93,-1021.66C2340.89,-1022.36 190,-1020.64 190,-889.5 190,-889.5 190,-889.5 190,-658 190,-577.981 272.93,-338.75 297.326,-270.104"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="300.767,-270.877 300.832,-260.282 294.174,-268.523 300.767,-270.877"/>
+</g>
+<!-- Node45&#45;&gt;Node38 -->
+<g id="edge145" class="edge"><title>Node45&#45;&gt;Node38</title>
+<path fill="none" stroke="midnightblue" d="M2717.92,-1012.43C2518.88,-980.225 1847.25,-871.561 1639.66,-837.975"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1639.97,-834.481 1629.54,-836.339 1638.86,-841.391 1639.97,-834.481"/>
+</g>
+<!-- Node46 -->
+<g id="node46" class="node"><title>Node46</title>
+<polygon fill="white" stroke="#bfbfbf" points="3000,-649.5 3000,-668.5 3086,-668.5 3086,-649.5 3000,-649.5"/>
+<text text-anchor="middle" x="3043" y="-656.5" font-family="Helvetica,sans-Serif" font-size="10.00">unordered_set</text>
+</g>
+<!-- Node45&#45;&gt;Node46 -->
+<g id="edge147" class="edge"><title>Node45&#45;&gt;Node46</title>
+<path fill="none" stroke="midnightblue" d="M2830.13,-1011.4C2857.07,-1004.08 2888.16,-991.705 2910,-971 2960.28,-923.346 2972,-897.272 2972,-828 2972,-828 2972,-828 2972,-770 2972,-731.101 3003.73,-695.052 3024.77,-675.426"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="3027.11,-678.021 3032.22,-668.736 3022.44,-672.813 3027.11,-678.021"/>
+</g>
+<!-- Node47&#45;&gt;Node8 -->
+<g id="edge158" class="edge"><title>Node47&#45;&gt;Node8</title>
+<path fill="none" stroke="midnightblue" d="M2525.26,-711.791C2380.9,-705.071 1993.67,-681.009 1888,-613 1797.5,-554.75 1838.77,-474.854 1750,-414 1715.93,-390.648 1671.09,-379.365 1633.98,-373.935"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1634.1,-370.421 1623.73,-372.553 1633.17,-377.358 1634.1,-370.421"/>
+</g>
+<!-- Node47&#45;&gt;Node17 -->
+<g id="edge171" class="edge"><title>Node47&#45;&gt;Node17</title>
+<path fill="none" stroke="midnightblue" d="M2525.36,-712.638C2192.91,-704.179 456,-657.425 456,-604 456,-604 456,-604 456,-546 456,-441.076 418,-417.924 418,-313 418,-313 418,-313 418,-249.5 418,-180.5 452.32,-163.752 508,-123 545.632,-95.4574 598.93,-82.5199 632.727,-76.752"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="633.644,-80.1501 642.97,-75.1218 632.544,-73.2371 633.644,-80.1501"/>
+</g>
+<!-- Node47&#45;&gt;Node19 -->
+<g id="edge173" class="edge"><title>Node47&#45;&gt;Node19</title>
+<path fill="none" stroke="midnightblue" d="M2628.01,-705.497C2705.66,-689.447 2859.51,-647.803 2953,-557 2996.56,-514.694 3076,-373.722 3076,-313 3076,-313 3076,-313 3076,-188 3076,-93.2051 2925.65,-75.9913 2858.61,-73.0276"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2858.35,-69.516 2848.23,-72.6542 2858.1,-76.5115 2858.35,-69.516"/>
+</g>
+<!-- Node47&#45;&gt;Node25 -->
+<g id="edge174" class="edge"><title>Node47&#45;&gt;Node25</title>
+<path fill="none" stroke="midnightblue" d="M2604.29,-705.47C2640.91,-690.881 2706,-657.43 2706,-604 2706,-604 2706,-604 2706,-367 2706,-277.526 2696.45,-243.078 2634,-179 2613.84,-158.31 2582.78,-146.756 2558.97,-140.553"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2559.47,-137.075 2548.93,-138.139 2557.84,-143.881 2559.47,-137.075"/>
+</g>
+<!-- Node47&#45;&gt;Node39 -->
+<g id="edge159" class="edge"><title>Node47&#45;&gt;Node39</title>
+<path fill="none" stroke="midnightblue" d="M2634.7,-707.985C2663.31,-702.235 2697.05,-690.991 2720,-669 2742.24,-647.694 2744,-634.795 2744,-604 2744,-604 2744,-604 2744,-490 2744,-451.354 2763.72,-409.565 2776.45,-386.609"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2779.6,-388.14 2781.55,-377.726 2773.54,-384.651 2779.6,-388.14"/>
+</g>
+<!-- Node47&#45;&gt;Node42 -->
+<g id="edge151" class="edge"><title>Node47&#45;&gt;Node42</title>
+<path fill="none" stroke="midnightblue" d="M2530,-705.46C2409.4,-684.859 2103.66,-632.638 1984.55,-612.293"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1985.07,-608.831 1974.62,-610.597 1983.89,-615.731 1985.07,-608.831"/>
+</g>
+<!-- Node47&#45;&gt;Node46 -->
+<g id="edge172" class="edge"><title>Node47&#45;&gt;Node46</title>
+<path fill="none" stroke="midnightblue" d="M2634.93,-707.593C2724.56,-697.14 2901.14,-676.546 2989.7,-666.216"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2990.27,-669.674 2999.8,-665.039 2989.46,-662.721 2990.27,-669.674"/>
+</g>
+<!-- Node48 -->
+<g id="node48" class="node"><title>Node48</title>
+<g id="a_node48"><a xlink:href="include_2tvm_2ir_2transform_8h.html" target="_top" xlink:title="tvm/ir/transform.h">
+<polygon fill="white" stroke="red" points="2308,-420 2308,-439 2412,-439 2412,-420 2308,-420"/>
+<text text-anchor="middle" x="2360" y="-427" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ir/transform.h</text>
+</a>
+</g>
+</g>
+<!-- Node47&#45;&gt;Node48 -->
+<g id="edge152" class="edge"><title>Node47&#45;&gt;Node48</title>
+<path fill="none" stroke="midnightblue" d="M2525.33,-707.75C2474.38,-700.851 2403.3,-688.123 2383,-669 2361.09,-648.364 2364,-634.098 2364,-604 2364,-604 2364,-604 2364,-546 2364,-511.843 2362.23,-472.039 2361.05,-449.202"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2364.54,-448.987 2360.51,-439.19 2357.55,-449.364 2364.54,-448.987"/>
+</g>
+<!-- Node49 -->
+<g id="node49" class="node"><title>Node49</title>
+<g id="a_node49"><a xlink:href="target__id_8h.html" target="_top" xlink:title="Target id registry. ">
+<polygon fill="white" stroke="red" points="2392,-649.5 2392,-668.5 2514,-668.5 2514,-649.5 2392,-649.5"/>
+<text text-anchor="middle" x="2453" y="-656.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/target/target_id.h</text>
+</a>
+</g>
+</g>
+<!-- Node47&#45;&gt;Node49 -->
+<g id="edge160" class="edge"><title>Node47&#45;&gt;Node49</title>
+<path fill="none" stroke="midnightblue" d="M2559.88,-705.444C2538.98,-696.557 2506.07,-682.563 2482.28,-672.451"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2483.6,-669.208 2473.03,-668.516 2480.86,-675.65 2483.6,-669.208"/>
+</g>
+<!-- Node48&#45;&gt;Node8 -->
+<g id="edge153" class="edge"><title>Node48&#45;&gt;Node8</title>
+<path fill="none" stroke="midnightblue" d="M2307.77,-424.596C2168.93,-414.217 1790.58,-385.936 1633.65,-374.206"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1633.87,-370.713 1623.64,-373.458 1633.35,-377.693 1633.87,-370.713"/>
+</g>
+<!-- Node48&#45;&gt;Node9 -->
+<g id="edge154" class="edge"><title>Node48&#45;&gt;Node9</title>
+<path fill="none" stroke="midnightblue" d="M2329.96,-419.913C2258.15,-399.382 2076.5,-347.45 1995.75,-324.364"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1996.54,-320.949 1985.96,-321.565 1994.61,-327.679 1996.54,-320.949"/>
+</g>
+<!-- Node48&#45;&gt;Node17 -->
+<g id="edge156" class="edge"><title>Node48&#45;&gt;Node17</title>
+<path fill="none" stroke="midnightblue" d="M2307.9,-424.876C2150.28,-413.025 1665.56,-370.032 1278,-266 1199.56,-244.946 1179.41,-237.686 1108,-199 1056.71,-171.214 1055.1,-144.819 1001,-123 895.721,-80.5361 758.849,-73.3776 697.378,-72.4405"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="697.18,-68.9383 687.144,-72.3326 697.107,-75.9379 697.18,-68.9383"/>
+</g>
+<!-- Node48&#45;&gt;Node19 -->
+<g id="edge157" class="edge"><title>Node48&#45;&gt;Node19</title>
+<path fill="none" stroke="midnightblue" d="M2378.21,-419.904C2397.54,-410.504 2428.75,-394.559 2454,-378 2602.19,-280.821 2760.38,-135.434 2810.68,-88.0398"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2813.2,-90.4759 2818.06,-81.0608 2808.39,-85.391 2813.2,-90.4759"/>
+</g>
+<!-- Node48&#45;&gt;Node39 -->
+<g id="edge155" class="edge"><title>Node48&#45;&gt;Node39</title>
+<path fill="none" stroke="midnightblue" d="M2412.36,-421.204C2491,-410.245 2639.39,-389.569 2723.9,-377.793"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2724.46,-381.249 2733.88,-376.402 2723.49,-374.316 2724.46,-381.249"/>
+</g>
+<!-- Node49&#45;&gt;Node9 -->
+<g id="edge163" class="edge"><title>Node49&#45;&gt;Node9</title>
+<path fill="none" stroke="midnightblue" d="M2451.3,-649.483C2447.78,-631.056 2440,-586.076 2440,-548 2440,-548 2440,-548 2440,-490 2440,-455.183 2445.96,-438.273 2421,-414 2366.4,-360.907 2149.24,-331.901 2032.01,-319.826"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2032.32,-316.34 2022.02,-318.813 2031.61,-323.304 2032.32,-316.34"/>
+</g>
+<!-- Node49&#45;&gt;Node17 -->
+<g id="edge167" class="edge"><title>Node49&#45;&gt;Node17</title>
+<path fill="none" stroke="midnightblue" d="M2391.99,-654.543C2141.82,-639.947 1194.23,-580.44 906,-501 767.913,-462.941 693.399,-454.089 638,-322 603.979,-240.884 640.411,-132.534 657.332,-90.3558"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="660.566,-91.6932 661.158,-81.1149 654.099,-89.0149 660.566,-91.6932"/>
+</g>
+<!-- Node49&#45;&gt;Node19 -->
+<g id="edge169" class="edge"><title>Node49&#45;&gt;Node19</title>
+<path fill="none" stroke="midnightblue" d="M2514.22,-651.044C2664.24,-630.261 3038,-554.271 3038,-313 3038,-313 3038,-313 3038,-188 3038,-157.205 3036.73,-143.775 3014,-123 2970.59,-83.3287 2899.23,-74.2917 2858.36,-72.5481"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2858.28,-69.0441 2848.17,-72.2387 2858.06,-76.0409 2858.28,-69.0441"/>
+</g>
+<!-- Node49&#45;&gt;Node22 -->
+<g id="edge164" class="edge"><title>Node49&#45;&gt;Node22</title>
+<path fill="none" stroke="midnightblue" d="M2433.34,-649.322C2318.56,-598.662 1734.67,-340.952 1573.34,-269.748"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1574.34,-266.361 1563.78,-265.525 1571.51,-272.765 1574.34,-266.361"/>
+</g>
+<!-- Node49&#45;&gt;Node25 -->
+<g id="edge170" class="edge"><title>Node49&#45;&gt;Node25</title>
+<path fill="none" stroke="midnightblue" d="M2462.3,-649.282C2479.82,-631.851 2516,-590.695 2516,-548 2516,-548 2516,-548 2516,-428.5 2516,-324.285 2521.7,-199.423 2524.03,-152.782"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2527.53,-152.835 2524.54,-142.67 2520.54,-152.48 2527.53,-152.835"/>
+</g>
+<!-- Node49&#45;&gt;Node27 -->
+<g id="edge166" class="edge"><title>Node49&#45;&gt;Node27</title>
+<path fill="none" stroke="midnightblue" d="M2456.37,-649.313C2463.2,-630.923 2478,-586.581 2478,-548 2478,-548 2478,-548 2478,-428.5 2478,-267.52 2231.17,-211.3 2133.82,-195.386"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2134.21,-191.906 2123.79,-193.804 2133.12,-198.82 2134.21,-191.906"/>
+</g>
+<!-- Node49&#45;&gt;Node31 -->
+<g id="edge168" class="edge"><title>Node49&#45;&gt;Node31</title>
+<path fill="none" stroke="midnightblue" d="M2391.99,-658.281C2118.35,-658.975 1002.96,-655.587 670,-557 621.899,-542.758 612.404,-530.733 572,-501 466.879,-423.643 357.993,-309.887 318.996,-267.872"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="321.505,-265.431 312.15,-260.458 316.362,-270.18 321.505,-265.431"/>
+</g>
+<!-- Node49&#45;&gt;Node39 -->
+<g id="edge165" class="edge"><title>Node49&#45;&gt;Node39</title>
+<path fill="none" stroke="midnightblue" d="M2470.62,-649.348C2486.76,-641.046 2510.98,-627.636 2530,-613 2629.38,-536.527 2636.19,-497.209 2730,-414 2741.91,-403.437 2755.93,-392.349 2767.09,-383.821"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2769.47,-386.414 2775.33,-377.591 2765.24,-380.831 2769.47,-386.414"/>
+</g>
+<!-- Node49&#45;&gt;Node42 -->
+<g id="edge161" class="edge"><title>Node49&#45;&gt;Node42</title>
+<path fill="none" stroke="midnightblue" d="M2391.92,-651.62C2288.13,-640.779 2079.41,-618.979 1984.71,-609.088"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1984.86,-605.584 1974.55,-608.027 1984.13,-612.547 1984.86,-605.584"/>
+</g>
+<!-- Node49&#45;&gt;Node48 -->
+<g id="edge162" class="edge"><title>Node49&#45;&gt;Node48</title>
+<path fill="none" stroke="midnightblue" d="M2447.1,-649.316C2441.24,-640.452 2432.26,-626.166 2426,-613 2422.31,-605.234 2382.53,-493.777 2366.57,-448.961"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2369.79,-447.577 2363.14,-439.33 2363.2,-449.924 2369.79,-447.577"/>
+</g>
+<!-- Node50&#45;&gt;Node7 -->
+<g id="edge180" class="edge"><title>Node50&#45;&gt;Node7</title>
+<path fill="none" stroke="midnightblue" d="M3059.49,-1141.29C3024.33,-1111.76 2938.43,-1043.5 2855,-1007 2358.23,-789.641 2191.3,-867.073 1668,-725 1585.92,-702.714 1552.69,-720.51 1485,-669 1449.3,-641.831 1425.71,-592.968 1414.87,-566.407"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1418.02,-564.85 1411.11,-556.813 1411.5,-567.401 1418.02,-564.85"/>
+</g>
+<!-- Node50&#45;&gt;Node25 -->
+<g id="edge182" class="edge"><title>Node50&#45;&gt;Node25</title>
+<path fill="none" stroke="midnightblue" d="M3091.02,-1141.23C3113.16,-1118.55 3152,-1071.89 3152,-1023.5 3152,-1023.5 3152,-1023.5 3152,-602 3152,-336.442 2974.67,-282.247 2730,-179 2672.56,-154.76 2600.32,-142.82 2558.73,-137.567"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2558.94,-134.067 2548.59,-136.343 2558.1,-141.017 2558.94,-134.067"/>
+</g>
+<!-- Node50&#45;&gt;Node44 -->
+<g id="edge179" class="edge"><title>Node50&#45;&gt;Node44</title>
+<path fill="none" stroke="midnightblue" d="M3019.9,-1141.48C2979.46,-1131.37 2924.74,-1117.68 2882.16,-1107.04"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2882.99,-1103.64 2872.44,-1104.61 2881.3,-1110.43 2882.99,-1103.64"/>
+</g>
+<!-- Node50&#45;&gt;Node46 -->
+<g id="edge181" class="edge"><title>Node50&#45;&gt;Node46</title>
+<path fill="none" stroke="midnightblue" d="M3082.97,-1141.24C3093.94,-1117.44 3114,-1067.86 3114,-1023.5 3114,-1023.5 3114,-1023.5 3114,-770 3114,-731.101 3082.27,-695.052 3061.23,-675.426"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="3063.56,-672.813 3053.78,-668.736 3058.89,-678.021 3063.56,-672.813"/>
+</g>
+</g>
+</svg>
diff --git a/docs/api/doxygen/auto__schedule_8h_source.html b/docs/api/doxygen/auto__schedule_8h_source.html
new file mode 100644
index 0000000..133e444
--- /dev/null
+++ b/docs/api/doxygen/auto__schedule_8h_source.html
@@ -0,0 +1,123 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.11"/>
+<title>tvm: include/tvm/auto_scheduler/auto_schedule.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { init_search(); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">tvm
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.11 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_b4c7d8e826c599ba55146c099a14beb5.html">tvm</a></li><li class="navelem"><a class="el" href="dir_a98464176f1216e334ac3bbacd433085.html">auto_scheduler</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">auto_schedule.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="auto__schedule_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 m [...]
+<div class="ttc" id="classtvm_1_1auto__scheduler_1_1TuningOptionsNode_html_a4b1cbc19fcc80c2564b24c56f6cf9504"><div class="ttname"><a href="classtvm_1_1auto__scheduler_1_1TuningOptionsNode.html#a4b1cbc19fcc80c2564b24c56f6cf9504">tvm::auto_scheduler::TuningOptionsNode::early_stopping</a></div><div class="ttdeci">int early_stopping</div><div class="ttdoc">Stops the tuning early if no improvement after n measurements. </div><div class="ttdef"><b>Definition:</b> auto_schedule.h:42</div></div>
+<div class="ttc" id="classtvm_1_1auto__scheduler_1_1TuningOptionsNode_html_a55c7823a36ec7ee5670ef8ad8c21a5be"><div class="ttname"><a href="classtvm_1_1auto__scheduler_1_1TuningOptionsNode.html#a55c7823a36ec7ee5670ef8ad8c21a5be">tvm::auto_scheduler::TuningOptionsNode::builder</a></div><div class="ttdeci">ProgramBuilder builder</div><div class="ttdoc">ProgramBuilder which builds the program. </div><div class="ttdef"><b>Definition:</b> auto_schedule.h:51</div></div>
+<div class="ttc" id="namespacetvm_html"><div class="ttname"><a href="namespacetvm.html">tvm</a></div><div class="ttdef"><b>Definition:</b> analyzer.h:36</div></div>
+<div class="ttc" id="classtvm_1_1auto__scheduler_1_1TuningOptionsNode_html_ab5804969081fc4f1e1330b3e55da692f"><div class="ttname"><a href="classtvm_1_1auto__scheduler_1_1TuningOptionsNode.html#ab5804969081fc4f1e1330b3e55da692f">tvm::auto_scheduler::TuningOptionsNode::verbose</a></div><div class="ttdeci">int verbose</div><div class="ttdoc">Verbosity level. 0 for silent, 1 to output information during schedule searching. ...</div><div class="ttdef"><b>Definition:</b> auto_schedule.h:49</di [...]
+<div class="ttc" id="classtvm_1_1auto__scheduler_1_1TuningOptionsNode_html_a60515c17b530f5c8b806930469bdd22c"><div class="ttname"><a href="classtvm_1_1auto__scheduler_1_1TuningOptionsNode.html#a60515c17b530f5c8b806930469bdd22c">tvm::auto_scheduler::TuningOptionsNode::VisitAttrs</a></div><div class="ttdeci">void VisitAttrs(tvm::AttrVisitor *v)</div><div class="ttdef"><b>Definition:</b> auto_schedule.h:59</div></div>
+<div class="ttc" id="classtvm_1_1auto__scheduler_1_1TuningOptionsNode_html"><div class="ttname"><a href="classtvm_1_1auto__scheduler_1_1TuningOptionsNode.html">tvm::auto_scheduler::TuningOptionsNode</a></div><div class="ttdoc">Tuning and measurement options. </div><div class="ttdef"><b>Definition:</b> auto_schedule.h:37</div></div>
+<div class="ttc" id="classtvm_1_1auto__scheduler_1_1TuningOptionsNode_html_a64abc6eeb90309a01a0a9d415aaf26f4"><div class="ttname"><a href="classtvm_1_1auto__scheduler_1_1TuningOptionsNode.html#a64abc6eeb90309a01a0a9d415aaf26f4">tvm::auto_scheduler::TuningOptionsNode::TVM_DECLARE_FINAL_OBJECT_INFO</a></div><div class="ttdeci">TVM_DECLARE_FINAL_OBJECT_INFO(TuningOptionsNode, Object)</div></div>
+<div class="ttc" id="classtvm_1_1auto__scheduler_1_1ProgramRunner_html"><div class="ttname"><a href="classtvm_1_1auto__scheduler_1_1ProgramRunner.html">tvm::auto_scheduler::ProgramRunner</a></div><div class="ttdoc">Managed reference to ProgramRunnerNode. </div><div class="ttdef"><b>Definition:</b> measure.h:299</div></div>
+<div class="ttc" id="classtvm_1_1AttrVisitor_html"><div class="ttname"><a href="classtvm_1_1AttrVisitor.html">tvm::AttrVisitor</a></div><div class="ttdoc">Visitor class for to get the attributesof a AST/IR node. The content is going to be called for each f...</div><div class="ttdef"><b>Definition:</b> reflection.h:52</div></div>
+<div class="ttc" id="classtvm_1_1auto__scheduler_1_1TuningOptionsNode_html_ade4f4a9a5dda968e8a81a43c8d8b597e"><div class="ttname"><a href="classtvm_1_1auto__scheduler_1_1TuningOptionsNode.html#ade4f4a9a5dda968e8a81a43c8d8b597e">tvm::auto_scheduler::TuningOptionsNode::_type_key</a></div><div class="ttdeci">static constexpr const char * _type_key</div><div class="ttdef"><b>Definition:</b> auto_schedule.h:70</div></div>
+<div class="ttc" id="classtvm_1_1auto__scheduler_1_1TuningOptionsNode_html_a9c722aa913bb8a2187cf0d40ae7bfb04"><div class="ttname"><a href="classtvm_1_1auto__scheduler_1_1TuningOptionsNode.html#a9c722aa913bb8a2187cf0d40ae7bfb04">tvm::auto_scheduler::TuningOptionsNode::pre_search_callbacks</a></div><div class="ttdeci">Optional&lt; Array&lt; SearchCallback &gt; &gt; pre_search_callbacks</div><div class="ttdoc">SearchCallback functions to be called before schedule search. </div><div class="t [...]
+<div class="ttc" id="measure_8h_html"><div class="ttname"><a href="measure_8h.html">measure.h</a></div><div class="ttdoc">Distributed measurement infrastructure to measure the runtime costs of tensor programs. These functions are responsible for building the tvm module, uploading it to remote devices, recording the running time costs, and checking the correctness of the output. </div></div>
+<div class="ttc" id="object_8h_html_ac6e7295a4999e2c8e4a2c990beca887a"><div class="ttname"><a href="object_8h.html#ac6e7295a4999e2c8e4a2c990beca887a">TVM_DEFINE_OBJECT_REF_METHODS</a></div><div class="ttdeci">#define TVM_DEFINE_OBJECT_REF_METHODS(TypeName, ParentType, ObjectName)</div><div class="ttdef"><b>Definition:</b> object.h:701</div></div>
+<div class="ttc" id="classtvm_1_1auto__scheduler_1_1SearchPolicy_html"><div class="ttname"><a href="classtvm_1_1auto__scheduler_1_1SearchPolicy.html">tvm::auto_scheduler::SearchPolicy</a></div><div class="ttdoc">Managed reference to SearchPolicyNode. </div><div class="ttdef"><b>Definition:</b> search_policy.h:154</div></div>
+<div class="ttc" id="namespacetvm_1_1auto__scheduler_html_a7d8ee089905d95fe01bb6c513f429ac0"><div class="ttname"><a href="namespacetvm_1_1auto__scheduler.html#a7d8ee089905d95fe01bb6c513f429ac0">tvm::auto_scheduler::AutoSchedule</a></div><div class="ttdeci">std::pair&lt; te::Schedule, Array&lt; te::Tensor &gt; &gt; AutoSchedule(SearchTask task, SearchPolicy search_policy, TuningOptions tuning_options)</div><div class="ttdoc">Run schedule search for a given compute declaration. </div></div>
+<div class="ttc" id="classtvm_1_1auto__scheduler_1_1TuningOptionsNode_html_af6f3c49598d8377e02df4cd4d43ce732"><div class="ttname"><a href="classtvm_1_1auto__scheduler_1_1TuningOptionsNode.html#af6f3c49598d8377e02df4cd4d43ce732">tvm::auto_scheduler::TuningOptionsNode::num_measure_trials</a></div><div class="ttdeci">int num_measure_trials</div><div class="ttdoc">The number of total measurement trials. </div><div class="ttdef"><b>Definition:</b> auto_schedule.h:40</div></div>
+<div class="ttc" id="classtvm_1_1auto__scheduler_1_1TuningOptionsNode_html_a355d86b2c38f0827ae1b158753d1daa2"><div class="ttname"><a href="classtvm_1_1auto__scheduler_1_1TuningOptionsNode.html#a355d86b2c38f0827ae1b158753d1daa2">tvm::auto_scheduler::TuningOptionsNode::runner</a></div><div class="ttdeci">ProgramRunner runner</div><div class="ttdoc">ProgramRunner which runs the program and measures time costs. </div><div class="ttdef"><b>Definition:</b> auto_schedule.h:53</div></div>
+<div class="ttc" id="classtvm_1_1auto__scheduler_1_1ProgramBuilder_html"><div class="ttname"><a href="classtvm_1_1auto__scheduler_1_1ProgramBuilder.html">tvm::auto_scheduler::ProgramBuilder</a></div><div class="ttdoc">Managed reference to ProgramBuilderNode. </div><div class="ttdef"><b>Definition:</b> measure.h:261</div></div>
+<div class="ttc" id="classtvm_1_1auto__scheduler_1_1TuningOptionsNode_html_a3ba0915aabeb33a6adbcdceb4e6a43b9"><div class="ttname"><a href="classtvm_1_1auto__scheduler_1_1TuningOptionsNode.html#a3ba0915aabeb33a6adbcdceb4e6a43b9">tvm::auto_scheduler::TuningOptionsNode::measure_callbacks</a></div><div class="ttdeci">Optional&lt; Array&lt; MeasureCallback &gt; &gt; measure_callbacks</div><div class="ttdoc">MeasureCallback functions to be called after each measure batch. </div><div class="ttd [...]
+<div class="ttc" id="classtvm_1_1auto__scheduler_1_1SearchTask_html"><div class="ttname"><a href="classtvm_1_1auto__scheduler_1_1SearchTask.html">tvm::auto_scheduler::SearchTask</a></div><div class="ttdoc">Managed reference to SearchTaskNode. </div><div class="ttdef"><b>Definition:</b> search_task.h:132</div></div>
+<div class="ttc" id="classtvm_1_1auto__scheduler_1_1TuningOptions_html"><div class="ttname"><a href="classtvm_1_1auto__scheduler_1_1TuningOptions.html">tvm::auto_scheduler::TuningOptions</a></div><div class="ttdoc">Managed reference to TuningOptionsNode. </div><div class="ttdef"><b>Definition:</b> auto_schedule.h:78</div></div>
+<div class="ttc" id="search__policy_8h_html"><div class="ttname"><a href="search__policy_8h.html">search_policy.h</a></div><div class="ttdoc">The base class of search policies, including the abstract definition of search policy and other suppo...</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.11
+</small></address>
+</body>
+</html>
diff --git a/docs/api/doxygen/bytecode_8h.html b/docs/api/doxygen/bytecode_8h.html
new file mode 100644
index 0000000..518049f
--- /dev/null
+++ b/docs/api/doxygen/bytecode_8h.html
@@ -0,0 +1,183 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.11"/>
+<title>tvm: include/tvm/runtime/vm/bytecode.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { init_search(); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">tvm
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.11 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_b4c7d8e826c599ba55146c099a14beb5.html">tvm</a></li><li class="navelem"><a class="el" href="dir_404558507ed35459f0d7a6d81d8c508d.html">runtime</a></li><li class="navelem"><a class="el" href="dir_5baffeed82c1190bfdf7a4f918ab5ac6.html">vm</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Classes</a> &#124;
+<a href="#namespaces">Namespaces</a> &#124;
+<a href="#typedef-members">Typedefs</a> &#124;
+<a href="#enum-members">Enumerations</a>  </div>
+  <div class="headertitle">
+<div class="title">bytecode.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>The bytecode for Relay virtual machine.  
+<a href="#details">More...</a></p>
+<div class="textblock"><code>#include &lt;<a class="el" href="data__type_8h_source.html">tvm/runtime/data_type.h</a>&gt;</code><br />
+<code>#include &lt;iostream&gt;</code><br />
+<code>#include &lt;vector&gt;</code><br />
+</div><div class="textblock"><div class="dynheader">
+Include dependency graph for bytecode.h:</div>
+<div class="dyncontent">
+<div class="center"><iframe scrolling="no" frameborder="0" src="bytecode_8h__incl.svg" width="586" height="291"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
+</div>
+</div>
+</div><div class="textblock"><div class="dynheader">
+This graph shows which files directly or indirectly include this file:</div>
+<div class="dyncontent">
+<div class="center"><iframe scrolling="no" frameborder="0" src="bytecode_8h__dep__incl.svg" width="218" height="231"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
+</div>
+</div>
+</div>
+<p><a href="bytecode_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structtvm_1_1runtime_1_1vm_1_1Instruction.html">tvm::runtime::vm::Instruction</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A single virtual machine instruction.  <a href="structtvm_1_1runtime_1_1vm_1_1Instruction.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespacetvm"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacetvm.html">tvm</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:namespacetvm_1_1runtime"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:namespacetvm_1_1runtime_1_1vm"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacetvm_1_1runtime_1_1vm.html">tvm::runtime::vm</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:a3bbbf700719e9dc3dda2bc25210c18ae"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacetvm_1_1runtime_1_1vm.html#a3bbbf700719e9dc3dda2bc25210c18ae">tvm::runtime::vm::RegName</a> = int64_t</td></tr>
+<tr class="memdesc:a3bbbf700719e9dc3dda2bc25210c18ae"><td class="mdescLeft">&#160;</td><td class="mdescRight">A register name.  <a href="namespacetvm_1_1runtime_1_1vm.html#a3bbbf700719e9dc3dda2bc25210c18ae">More...</a><br /></td></tr>
+<tr class="separator:a3bbbf700719e9dc3dda2bc25210c18ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3597867d2db714bf760876a23d6b7d3d"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacetvm_1_1runtime_1_1vm.html#a3597867d2db714bf760876a23d6b7d3d">tvm::runtime::vm::Index</a> = int64_t</td></tr>
+<tr class="memdesc:a3597867d2db714bf760876a23d6b7d3d"><td class="mdescLeft">&#160;</td><td class="mdescRight">An alias for the integer type used ubiquitously in the VM.  <a href="namespacetvm_1_1runtime_1_1vm.html#a3597867d2db714bf760876a23d6b7d3d">More...</a><br /></td></tr>
+<tr class="separator:a3597867d2db714bf760876a23d6b7d3d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr class="memitem:a8d8d95ce8d629c7213f2f595917870ec"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacetvm_1_1runtime_1_1vm.html#a8d8d95ce8d629c7213f2f595917870ec">tvm::runtime::vm::Opcode</a> { <br />
+&#160;&#160;<a class="el" href="namespacetvm_1_1runtime_1_1vm.html#a8d8d95ce8d629c7213f2f595917870eca6bc362dbf494c61ea117fe3c71ca48a5">tvm::runtime::vm::Opcode::Move</a> = 0U, 
+<a class="el" href="namespacetvm_1_1runtime_1_1vm.html#a8d8d95ce8d629c7213f2f595917870ecaa4228a09dd66155de8e93a39245768bd">tvm::runtime::vm::Opcode::Ret</a> = 1U, 
+<a class="el" href="namespacetvm_1_1runtime_1_1vm.html#a8d8d95ce8d629c7213f2f595917870ecab9376e9e3c4d48f5e35a3f355ae1f74a">tvm::runtime::vm::Opcode::Invoke</a> = 2U, 
+<a class="el" href="namespacetvm_1_1runtime_1_1vm.html#a8d8d95ce8d629c7213f2f595917870eca46990b57941483ce17bb07e3af6da59c">tvm::runtime::vm::Opcode::InvokeClosure</a> = 3U, 
+<br />
+&#160;&#160;<a class="el" href="namespacetvm_1_1runtime_1_1vm.html#a8d8d95ce8d629c7213f2f595917870eca97ad0208b167666da31720813abe1174">tvm::runtime::vm::Opcode::InvokePacked</a> = 4U, 
+<a class="el" href="namespacetvm_1_1runtime_1_1vm.html#a8d8d95ce8d629c7213f2f595917870eca2bcae1ed3af462c3c4533a22377a75ea">tvm::runtime::vm::Opcode::AllocTensor</a> = 5U, 
+<a class="el" href="namespacetvm_1_1runtime_1_1vm.html#a8d8d95ce8d629c7213f2f595917870ecac8086b44868c71384cfec25bf1f1a6e6">tvm::runtime::vm::Opcode::AllocTensorReg</a> = 6U, 
+<a class="el" href="namespacetvm_1_1runtime_1_1vm.html#a8d8d95ce8d629c7213f2f595917870ecaee7bac5c7a1354c4d644508d4d82380e">tvm::runtime::vm::Opcode::AllocADT</a> = 7U, 
+<br />
+&#160;&#160;<a class="el" href="namespacetvm_1_1runtime_1_1vm.html#a8d8d95ce8d629c7213f2f595917870eca564a5812fad1ae9a2db0d77614c5d8bc">tvm::runtime::vm::Opcode::AllocClosure</a> = 8U, 
+<a class="el" href="namespacetvm_1_1runtime_1_1vm.html#a8d8d95ce8d629c7213f2f595917870ecad3e2f43779da90565fa9c24f9175dc04">tvm::runtime::vm::Opcode::GetField</a> = 9U, 
+<a class="el" href="namespacetvm_1_1runtime_1_1vm.html#a8d8d95ce8d629c7213f2f595917870eca786887572f6ef1c20f2d8177cb2f1639">tvm::runtime::vm::Opcode::If</a> = 10U, 
+<a class="el" href="namespacetvm_1_1runtime_1_1vm.html#a8d8d95ce8d629c7213f2f595917870eca68b393c7b4c9e1672b7a1a05161390f7">tvm::runtime::vm::Opcode::LoadConst</a> = 11U, 
+<br />
+&#160;&#160;<a class="el" href="namespacetvm_1_1runtime_1_1vm.html#a8d8d95ce8d629c7213f2f595917870ecaae8fae3d74fdc80ef40995c3c6ca152e">tvm::runtime::vm::Opcode::Goto</a> = 12U, 
+<a class="el" href="namespacetvm_1_1runtime_1_1vm.html#a8d8d95ce8d629c7213f2f595917870ecabbfa589e414211911a8254ba7896b127">tvm::runtime::vm::Opcode::GetTag</a> = 13U, 
+<a class="el" href="namespacetvm_1_1runtime_1_1vm.html#a8d8d95ce8d629c7213f2f595917870eca9558cee150d88040130f7b86d8d5dc58">tvm::runtime::vm::Opcode::LoadConsti</a> = 14U, 
+<a class="el" href="namespacetvm_1_1runtime_1_1vm.html#a8d8d95ce8d629c7213f2f595917870eca882384ec38ce8d9582b57e70861730e4">tvm::runtime::vm::Opcode::Fatal</a> = 15U, 
+<br />
+&#160;&#160;<a class="el" href="namespacetvm_1_1runtime_1_1vm.html#a8d8d95ce8d629c7213f2f595917870ecaa15cc1ca91f763a268e85bbc298987d7">tvm::runtime::vm::Opcode::AllocStorage</a> = 16U, 
+<a class="el" href="namespacetvm_1_1runtime_1_1vm.html#a8d8d95ce8d629c7213f2f595917870ecaf5c9bcc39a24e338f1837a43c549a855">tvm::runtime::vm::Opcode::ShapeOf</a> = 17U, 
+<a class="el" href="namespacetvm_1_1runtime_1_1vm.html#a8d8d95ce8d629c7213f2f595917870ecac6aefdb1a98b77723cb8cbd758d8bd30">tvm::runtime::vm::Opcode::ReshapeTensor</a> = 18U
+<br />
+ }<tr class="memdesc:a8d8d95ce8d629c7213f2f595917870ec"><td class="mdescLeft">&#160;</td><td class="mdescRight">An enumeration of Relay's opcodes.  <a href="namespacetvm_1_1runtime_1_1vm.html#a8d8d95ce8d629c7213f2f595917870ec">More...</a><br /></td></tr>
+</td></tr>
+<tr class="separator:a8d8d95ce8d629c7213f2f595917870ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>The bytecode for Relay virtual machine. </p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.11
+</small></address>
+</body>
+</html>
diff --git a/docs/api/doxygen/bytecode_8h__dep__incl.svg b/docs/api/doxygen/bytecode_8h__dep__incl.svg
new file mode 100644
index 0000000..05d18cb
--- /dev/null
+++ b/docs/api/doxygen/bytecode_8h__dep__incl.svg
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Generated by graphviz version 2.38.0 (20140413.2041)
+ -->
+<!-- Title: include/tvm/runtime/vm/bytecode.h Pages: 1 -->
+<svg width="163pt" height="173pt"
+ viewBox="0.00 0.00 163.00 173.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 169)">
+<title>include/tvm/runtime/vm/bytecode.h</title>
+<polygon fill="white" stroke="none" points="-4,4 -4,-169 159,-169 159,4 -4,4"/>
+<!-- Node1 -->
+<g id="node1" class="node"><title>Node1</title>
+<polygon fill="#bfbfbf" stroke="black" points="42,-134.5 42,-164.5 155,-164.5 155,-134.5 42,-134.5"/>
+<text text-anchor="start" x="50" y="-152.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/runtime</text>
+<text text-anchor="middle" x="98.5" y="-141.5" font-family="Helvetica,sans-Serif" font-size="10.00">/vm/bytecode.h</text>
+</g>
+<!-- Node2 -->
+<g id="node2" class="node"><title>Node2</title>
+<g id="a_node2"><a xlink:href="executable_8h.html" target="_top" xlink:title="The Relay virtual machine executable. ">
+<polygon fill="white" stroke="black" points="0,-67.5 0,-97.5 113,-97.5 113,-67.5 0,-67.5"/>
+<text text-anchor="start" x="8" y="-85.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/runtime</text>
+<text text-anchor="middle" x="56.5" y="-74.5" font-family="Helvetica,sans-Serif" font-size="10.00">/vm/executable.h</text>
+</a>
+</g>
+</g>
+<!-- Node1&#45;&gt;Node2 -->
+<g id="edge1" class="edge"><title>Node1&#45;&gt;Node2</title>
+<path fill="none" stroke="midnightblue" d="M83.8755,-125.867C77.7969,-116.459 70.9308,-105.833 65.5956,-97.5765"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="81.0197,-127.896 89.3866,-134.396 86.8991,-124.097 81.0197,-127.896"/>
+</g>
+<!-- Node3 -->
+<g id="node3" class="node"><title>Node3</title>
+<g id="a_node3"><a xlink:href="runtime_2vm_2vm_8h.html" target="_top" xlink:title="The Relay virtual machine runtime. ">
+<polygon fill="white" stroke="black" points="42,-0.5 42,-30.5 155,-30.5 155,-0.5 42,-0.5"/>
+<text text-anchor="start" x="50" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/runtime</text>
+<text text-anchor="middle" x="98.5" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">/vm/vm.h</text>
+</a>
+</g>
+</g>
+<!-- Node1&#45;&gt;Node3 -->
+<g id="edge3" class="edge"><title>Node1&#45;&gt;Node3</title>
+<path fill="none" stroke="midnightblue" d="M112.282,-125.077C116.42,-116.807 120.412,-107.256 122.5,-98 125.531,-84.5598 125.531,-80.4402 122.5,-67 119.595,-54.1218 113.004,-40.6743 107.462,-30.8969"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="109.085,-123.633 107.462,-134.103 115.26,-126.93 109.085,-123.633"/>
+</g>
+<!-- Node2&#45;&gt;Node3 -->
+<g id="edge2" class="edge"><title>Node2&#45;&gt;Node3</title>
+<path fill="none" stroke="midnightblue" d="M71.1245,-58.8669C77.2031,-49.4594 84.0692,-38.8334 89.4044,-30.5765"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="68.1009,-57.0973 65.6134,-67.396 73.9803,-60.8963 68.1009,-57.0973"/>
+</g>
+</g>
+</svg>
diff --git a/docs/api/doxygen/bytecode_8h__incl.svg b/docs/api/doxygen/bytecode_8h__incl.svg
new file mode 100644
index 0000000..191ba84
--- /dev/null
+++ b/docs/api/doxygen/bytecode_8h__incl.svg
@@ -0,0 +1,126 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Generated by graphviz version 2.38.0 (20140413.2041)
+ -->
+<!-- Title: include/tvm/runtime/vm/bytecode.h Pages: 1 -->
+<svg width="439pt" height="218pt"
+ viewBox="0.00 0.00 438.50 218.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 214)">
+<title>include/tvm/runtime/vm/bytecode.h</title>
+<polygon fill="white" stroke="none" points="-4,4 -4,-214 434.5,-214 434.5,4 -4,4"/>
+<!-- Node1 -->
+<g id="node1" class="node"><title>Node1</title>
+<polygon fill="#bfbfbf" stroke="black" points="279.5,-179.5 279.5,-209.5 392.5,-209.5 392.5,-179.5 279.5,-179.5"/>
+<text text-anchor="start" x="287.5" y="-197.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/runtime</text>
+<text text-anchor="middle" x="336" y="-186.5" font-family="Helvetica,sans-Serif" font-size="10.00">/vm/bytecode.h</text>
+</g>
+<!-- Node2 -->
+<g id="node2" class="node"><title>Node2</title>
+<g id="a_node2"><a xlink:href="data__type_8h.html" target="_top" xlink:title="tvm/runtime/data_type.h">
+<polygon fill="white" stroke="black" points="152,-123.5 152,-142.5 288,-142.5 288,-123.5 152,-123.5"/>
+<text text-anchor="middle" x="220" y="-130.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/runtime/data_type.h</text>
+</a>
+</g>
+</g>
+<!-- Node1&#45;&gt;Node2 -->
+<g id="edge1" class="edge"><title>Node1&#45;&gt;Node2</title>
+<path fill="none" stroke="midnightblue" d="M308.51,-179.399C289.568,-169.684 264.558,-156.855 245.956,-147.314"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="247.374,-144.108 236.879,-142.658 244.179,-150.336 247.374,-144.108"/>
+</g>
+<!-- Node10 -->
+<g id="node10" class="node"><title>Node10</title>
+<polygon fill="white" stroke="#bfbfbf" points="306.5,-123.5 306.5,-142.5 365.5,-142.5 365.5,-123.5 306.5,-123.5"/>
+<text text-anchor="middle" x="336" y="-130.5" font-family="Helvetica,sans-Serif" font-size="10.00">iostream</text>
+</g>
+<!-- Node1&#45;&gt;Node10 -->
+<g id="edge9" class="edge"><title>Node1&#45;&gt;Node10</title>
+<path fill="none" stroke="midnightblue" d="M336,-179.399C336,-171.466 336,-161.458 336,-152.858"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="339.5,-152.658 336,-142.658 332.5,-152.658 339.5,-152.658"/>
+</g>
+<!-- Node11 -->
+<g id="node11" class="node"><title>Node11</title>
+<polygon fill="white" stroke="#bfbfbf" points="383.5,-123.5 383.5,-142.5 430.5,-142.5 430.5,-123.5 383.5,-123.5"/>
+<text text-anchor="middle" x="407" y="-130.5" font-family="Helvetica,sans-Serif" font-size="10.00">vector</text>
+</g>
+<!-- Node1&#45;&gt;Node11 -->
+<g id="edge10" class="edge"><title>Node1&#45;&gt;Node11</title>
+<path fill="none" stroke="midnightblue" d="M352.826,-179.399C363.675,-170.308 377.777,-158.49 388.873,-149.191"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="391.252,-151.763 396.669,-142.658 386.756,-146.398 391.252,-151.763"/>
+</g>
+<!-- Node3 -->
+<g id="node3" class="node"><title>Node3</title>
+<polygon fill="white" stroke="#bfbfbf" points="0,-62 0,-81 86,-81 86,-62 0,-62"/>
+<text text-anchor="middle" x="43" y="-69" font-family="Helvetica,sans-Serif" font-size="10.00">dmlc/logging.h</text>
+</g>
+<!-- Node2&#45;&gt;Node3 -->
+<g id="edge2" class="edge"><title>Node2&#45;&gt;Node3</title>
+<path fill="none" stroke="midnightblue" d="M194.64,-123.475C164.016,-113.18 112.343,-95.8103 77.9544,-84.2502"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="78.9068,-80.8779 68.3127,-81.0091 76.6763,-87.5131 78.9068,-80.8779"/>
+</g>
+<!-- Node4 -->
+<g id="node4" class="node"><title>Node4</title>
+<g id="a_node4"><a xlink:href="c__runtime__api_8h.html" target="_top" xlink:title="tvm/runtime/c_runtime\l_api.h">
+<polygon fill="white" stroke="black" points="104.5,-56.5 104.5,-86.5 231.5,-86.5 231.5,-56.5 104.5,-56.5"/>
+<text text-anchor="start" x="112.5" y="-74.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/runtime/c_runtime</text>
+<text text-anchor="middle" x="168" y="-63.5" font-family="Helvetica,sans-Serif" font-size="10.00">_api.h</text>
+</a>
+</g>
+</g>
+<!-- Node2&#45;&gt;Node4 -->
+<g id="edge3" class="edge"><title>Node2&#45;&gt;Node4</title>
+<path fill="none" stroke="midnightblue" d="M212.55,-123.475C205.902,-115.869 195.878,-104.399 187.021,-94.2649"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="189.471,-91.7495 180.255,-86.523 184.201,-96.3559 189.471,-91.7495"/>
+</g>
+<!-- Node8 -->
+<g id="node8" class="node"><title>Node8</title>
+<polygon fill="white" stroke="#bfbfbf" points="250,-62 250,-81 294,-81 294,-62 250,-62"/>
+<text text-anchor="middle" x="272" y="-69" font-family="Helvetica,sans-Serif" font-size="10.00">string</text>
+</g>
+<!-- Node2&#45;&gt;Node8 -->
+<g id="edge7" class="edge"><title>Node2&#45;&gt;Node8</title>
+<path fill="none" stroke="midnightblue" d="M227.45,-123.475C235.328,-114.462 247.945,-100.025 257.744,-88.8118"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="260.618,-90.842 264.563,-81.0091 255.347,-86.2356 260.618,-90.842"/>
+</g>
+<!-- Node9 -->
+<g id="node9" class="node"><title>Node9</title>
+<polygon fill="white" stroke="#bfbfbf" points="312,-62 312,-81 380,-81 380,-62 312,-62"/>
+<text text-anchor="middle" x="346" y="-69" font-family="Helvetica,sans-Serif" font-size="10.00">type_traits</text>
+</g>
+<!-- Node2&#45;&gt;Node9 -->
+<g id="edge8" class="edge"><title>Node2&#45;&gt;Node9</title>
+<path fill="none" stroke="midnightblue" d="M238.053,-123.475C259.198,-113.49 294.44,-96.8476 318.878,-85.3075"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="320.433,-88.4441 327.981,-81.0091 317.444,-82.1143 320.433,-88.4441"/>
+</g>
+<!-- Node5 -->
+<g id="node5" class="node"><title>Node5</title>
+<polygon fill="white" stroke="#bfbfbf" points="32,-0.5 32,-19.5 122,-19.5 122,-0.5 32,-0.5"/>
+<text text-anchor="middle" x="77" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">dlpack/dlpack.h</text>
+</g>
+<!-- Node4&#45;&gt;Node5 -->
+<g id="edge4" class="edge"><title>Node4&#45;&gt;Node5</title>
+<path fill="none" stroke="midnightblue" d="M146.434,-56.3993C132.12,-47.0402 113.388,-34.7924 98.9885,-25.3771"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="100.526,-22.2009 90.2413,-19.6578 96.6956,-28.0597 100.526,-22.2009"/>
+</g>
+<!-- Node6 -->
+<g id="node6" class="node"><title>Node6</title>
+<polygon fill="white" stroke="#bfbfbf" points="140.5,-0.5 140.5,-19.5 195.5,-19.5 195.5,-0.5 140.5,-0.5"/>
+<text text-anchor="middle" x="168" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">stddef.h</text>
+</g>
+<!-- Node4&#45;&gt;Node6 -->
+<g id="edge5" class="edge"><title>Node4&#45;&gt;Node6</title>
+<path fill="none" stroke="midnightblue" d="M168,-56.3993C168,-48.4664 168,-38.458 168,-29.8583"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="171.5,-29.6577 168,-19.6578 164.5,-29.6578 171.5,-29.6577"/>
+</g>
+<!-- Node7 -->
+<g id="node7" class="node"><title>Node7</title>
+<polygon fill="white" stroke="#bfbfbf" points="213.5,-0.5 213.5,-19.5 266.5,-19.5 266.5,-0.5 213.5,-0.5"/>
+<text text-anchor="middle" x="240" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">stdint.h</text>
+</g>
+<!-- Node4&#45;&gt;Node7 -->
+<g id="edge6" class="edge"><title>Node4&#45;&gt;Node7</title>
+<path fill="none" stroke="midnightblue" d="M185.063,-56.3993C196.065,-47.3076 210.365,-35.4899 221.618,-26.1909"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="224.044,-28.726 229.523,-19.6578 219.585,-23.33 224.044,-28.726"/>
+</g>
+</g>
+</svg>
diff --git a/docs/api/doxygen/bytecode_8h_source.html b/docs/api/doxygen/bytecode_8h_source.html
new file mode 100644
index 0000000..cdccd8f
--- /dev/null
+++ b/docs/api/doxygen/bytecode_8h_source.html
@@ -0,0 +1,167 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.11"/>
+<title>tvm: include/tvm/runtime/vm/bytecode.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { init_search(); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">tvm
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.11 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_b4c7d8e826c599ba55146c099a14beb5.html">tvm</a></li><li class="navelem"><a class="el" href="dir_404558507ed35459f0d7a6d81d8c508d.html">runtime</a></li><li class="navelem"><a class="el" href="dir_5baffeed82c1190bfdf7a4f918ab5ac6.html">vm</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">bytecode.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="bytecode_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more co [...]
+<div class="ttc" id="structtvm_1_1runtime_1_1vm_1_1Instruction_html_adbf563aa259f209ad20619c25921cdc1"><div class="ttname"><a href="structtvm_1_1runtime_1_1vm_1_1Instruction.html#adbf563aa259f209ad20619c25921cdc1">tvm::runtime::vm::Instruction::num_freevar</a></div><div class="ttdeci">Index num_freevar</div><div class="ttdoc">The number of free variables to capture. </div><div class="ttdef"><b>Definition:</b> bytecode.h:188</div></div>
+<div class="ttc" id="structtvm_1_1runtime_1_1vm_1_1Instruction_html_aaea1385d3562231a2e242faa0b51c616"><div class="ttname"><a href="structtvm_1_1runtime_1_1vm_1_1Instruction.html#aaea1385d3562231a2e242faa0b51c616">tvm::runtime::vm::Instruction::clo_index</a></div><div class="ttdeci">Index clo_index</div><div class="ttdoc">The index into the function table. </div><div class="ttdef"><b>Definition:</b> bytecode.h:186</div></div>
+<div class="ttc" id="structtvm_1_1runtime_1_1vm_1_1Instruction_html_ac60e60c96d7bb22d8ac06169d5969232"><div class="ttname"><a href="structtvm_1_1runtime_1_1vm_1_1Instruction.html#ac60e60c96d7bb22d8ac06169d5969232">tvm::runtime::vm::Instruction::packed_index</a></div><div class="ttdeci">Index packed_index</div><div class="ttdoc">The index into the packed function table. </div><div class="ttdef"><b>Definition:</b> bytecode.h:128</div></div>
+<div class="ttc" id="namespacetvm_1_1runtime_1_1vm_html_a8d8d95ce8d629c7213f2f595917870ecac8086b44868c71384cfec25bf1f1a6e6"><div class="ttname"><a href="namespacetvm_1_1runtime_1_1vm.html#a8d8d95ce8d629c7213f2f595917870ecac8086b44868c71384cfec25bf1f1a6e6">tvm::runtime::vm::Opcode::AllocTensorReg</a></div></div>
+<div class="ttc" id="namespacetvm_1_1runtime_1_1vm_html_a8d8d95ce8d629c7213f2f595917870eca9558cee150d88040130f7b86d8d5dc58"><div class="ttname"><a href="namespacetvm_1_1runtime_1_1vm.html#a8d8d95ce8d629c7213f2f595917870eca9558cee150d88040130f7b86d8d5dc58">tvm::runtime::vm::Opcode::LoadConsti</a></div></div>
+<div class="ttc" id="structtvm_1_1runtime_1_1vm_1_1Instruction_html_ae0d33229af059c727db2abd3616660e0"><div class="ttname"><a href="structtvm_1_1runtime_1_1vm_1_1Instruction.html#ae0d33229af059c727db2abd3616660e0">tvm::runtime::vm::Instruction::result</a></div><div class="ttdeci">RegName result</div><div class="ttdoc">The register to return. </div><div class="ttdef"><b>Definition:</b> bytecode.h:120</div></div>
+<div class="ttc" id="structtvm_1_1runtime_1_1vm_1_1Instruction_html_a20f3b29da9e03f2fa6977743c30a02de"><div class="ttname"><a href="structtvm_1_1runtime_1_1vm_1_1Instruction.html#a20f3b29da9e03f2fa6977743c30a02de">tvm::runtime::vm::Instruction::false_offset</a></div><div class="ttdeci">Index false_offset</div><div class="ttdoc">The program counter offset for the false branch. </div><div class="ttdef"><b>Definition:</b> bytecode.h:144</div></div>
+<div class="ttc" id="structtvm_1_1runtime_1_1vm_1_1Instruction_html_a1354fe84e9c14c550a53f5de8f48d968"><div class="ttname"><a href="structtvm_1_1runtime_1_1vm_1_1Instruction.html#a1354fe84e9c14c550a53f5de8f48d968">tvm::runtime::vm::Instruction::shape</a></div><div class="ttdeci">int64_t * shape</div><div class="ttdoc">The shape of tensor. </div><div class="ttdef"><b>Definition:</b> bytecode.h:96</div></div>
+<div class="ttc" id="structtvm_1_1runtime_1_1vm_1_1Instruction_html_aa16a3e7e4030a69da0def6465d65e745"><div class="ttname"><a href="structtvm_1_1runtime_1_1vm_1_1Instruction.html#aa16a3e7e4030a69da0def6465d65e745">tvm::runtime::vm::Instruction::op</a></div><div class="ttdeci">Opcode op</div><div class="ttdoc">The instruction opcode. </div><div class="ttdef"><b>Definition:</b> bytecode.h:82</div></div>
+<div class="ttc" id="namespacetvm_1_1runtime_1_1vm_html_a8d8d95ce8d629c7213f2f595917870ecaf5c9bcc39a24e338f1837a43c549a855"><div class="ttname"><a href="namespacetvm_1_1runtime_1_1vm.html#a8d8d95ce8d629c7213f2f595917870ecaf5c9bcc39a24e338f1837a43c549a855">tvm::runtime::vm::Opcode::ShapeOf</a></div></div>
+<div class="ttc" id="namespacetvm_1_1runtime_1_1vm_html_a8d8d95ce8d629c7213f2f595917870eca786887572f6ef1c20f2d8177cb2f1639"><div class="ttname"><a href="namespacetvm_1_1runtime_1_1vm.html#a8d8d95ce8d629c7213f2f595917870eca786887572f6ef1c20f2d8177cb2f1639">tvm::runtime::vm::Opcode::If</a></div></div>
+<div class="ttc" id="namespacetvm_1_1runtime_1_1vm_html_a8d8d95ce8d629c7213f2f595917870eca68b393c7b4c9e1672b7a1a05161390f7"><div class="ttname"><a href="namespacetvm_1_1runtime_1_1vm.html#a8d8d95ce8d629c7213f2f595917870eca68b393c7b4c9e1672b7a1a05161390f7">tvm::runtime::vm::Opcode::LoadConst</a></div></div>
+<div class="ttc" id="structtvm_1_1runtime_1_1vm_1_1Instruction_html_a721907173e94d564bff879792b29f789"><div class="ttname"><a href="structtvm_1_1runtime_1_1vm_1_1Instruction.html#a721907173e94d564bff879792b29f789">tvm::runtime::vm::Instruction::pc_offset</a></div><div class="ttdeci">Index pc_offset</div><div class="ttdoc">The jump offset. </div><div class="ttdef"><b>Definition:</b> bytecode.h:164</div></div>
+<div class="ttc" id="namespacetvm_html"><div class="ttname"><a href="namespacetvm.html">tvm</a></div><div class="ttdef"><b>Definition:</b> analyzer.h:36</div></div>
+<div class="ttc" id="structtvm_1_1runtime_1_1vm_1_1Instruction_html_a6bb6a1b8be0c078394f2336970aab1af"><div class="ttname"><a href="structtvm_1_1runtime_1_1vm_1_1Instruction.html#a6bb6a1b8be0c078394f2336970aab1af">tvm::runtime::vm::Instruction::output_size</a></div><div class="ttdeci">Index output_size</div><div class="ttdoc">The number of outputs produced by the packed function. </div><div class="ttdef"><b>Definition:</b> bytecode.h:132</div></div>
+<div class="ttc" id="structtvm_1_1runtime_1_1vm_1_1Instruction_html_a22de469ea5521ba12e14f1e8181bae56"><div class="ttname"><a href="structtvm_1_1runtime_1_1vm_1_1Instruction.html#a22de469ea5521ba12e14f1e8181bae56">tvm::runtime::vm::Instruction::tensor</a></div><div class="ttdeci">RegName tensor</div><div class="ttdef"><b>Definition:</b> bytecode.h:201</div></div>
+<div class="ttc" id="namespacetvm_1_1runtime_1_1vm_html_a8d8d95ce8d629c7213f2f595917870ecaae8fae3d74fdc80ef40995c3c6ca152e"><div class="ttname"><a href="namespacetvm_1_1runtime_1_1vm.html#a8d8d95ce8d629c7213f2f595917870ecaae8fae3d74fdc80ef40995c3c6ca152e">tvm::runtime::vm::Opcode::Goto</a></div></div>
+<div class="ttc" id="structtvm_1_1runtime_1_1vm_1_1Instruction_html_ac1e5be6bd195486a884bd8a26b5d12f9"><div class="ttname"><a href="structtvm_1_1runtime_1_1vm_1_1Instruction.html#ac1e5be6bd195486a884bd8a26b5d12f9">tvm::runtime::vm::Instruction::val</a></div><div class="ttdeci">Index val</div><div class="ttdef"><b>Definition:</b> bytecode.h:160</div></div>
+<div class="ttc" id="namespacetvm_1_1runtime_1_1vm_html_a8d8d95ce8d629c7213f2f595917870eca46990b57941483ce17bb07e3af6da59c"><div class="ttname"><a href="namespacetvm_1_1runtime_1_1vm.html#a8d8d95ce8d629c7213f2f595917870eca46990b57941483ce17bb07e3af6da59c">tvm::runtime::vm::Opcode::InvokeClosure</a></div></div>
+<div class="ttc" id="namespacetvm_1_1runtime_1_1vm_html_a8d8d95ce8d629c7213f2f595917870eca97ad0208b167666da31720813abe1174"><div class="ttname"><a href="namespacetvm_1_1runtime_1_1vm.html#a8d8d95ce8d629c7213f2f595917870eca97ad0208b167666da31720813abe1174">tvm::runtime::vm::Opcode::InvokePacked</a></div></div>
+<div class="ttc" id="structtvm_1_1runtime_1_1vm_1_1Instruction_html_a91614b450055e58850c47949b3ed2714"><div class="ttname"><a href="structtvm_1_1runtime_1_1vm_1_1Instruction.html#a91614b450055e58850c47949b3ed2714">tvm::runtime::vm::Instruction::dtype</a></div><div class="ttdeci">DLDataType dtype</div><div class="ttdoc">The datatype of tensor to be allocated. </div><div class="ttdef"><b>Definition:</b> bytecode.h:98</div></div>
+<div class="ttc" id="namespacetvm_1_1runtime_1_1vm_html_a8d8d95ce8d629c7213f2f595917870ecab9376e9e3c4d48f5e35a3f355ae1f74a"><div class="ttname"><a href="namespacetvm_1_1runtime_1_1vm.html#a8d8d95ce8d629c7213f2f595917870ecab9376e9e3c4d48f5e35a3f355ae1f74a">tvm::runtime::vm::Opcode::Invoke</a></div></div>
+<div class="ttc" id="structtvm_1_1runtime_1_1vm_1_1Instruction_html"><div class="ttname"><a href="structtvm_1_1runtime_1_1vm_1_1Instruction.html">tvm::runtime::vm::Instruction</a></div><div class="ttdoc">A single virtual machine instruction. </div><div class="ttdef"><b>Definition:</b> bytecode.h:80</div></div>
+<div class="ttc" id="structtvm_1_1runtime_1_1vm_1_1Instruction_html_a950d212c6493a47bfcbf368daa974853"><div class="ttname"><a href="structtvm_1_1runtime_1_1vm_1_1Instruction.html#a950d212c6493a47bfcbf368daa974853">tvm::runtime::vm::Instruction::const_index</a></div><div class="ttdeci">Index const_index</div><div class="ttdef"><b>Definition:</b> bytecode.h:156</div></div>
+<div class="ttc" id="structtvm_1_1runtime_1_1vm_1_1Instruction_html_aee9011e3fab2ace2ae167db9a4394ee8"><div class="ttname"><a href="structtvm_1_1runtime_1_1vm_1_1Instruction.html#aee9011e3fab2ace2ae167db9a4394ee8">tvm::runtime::vm::Instruction::closure_args</a></div><div class="ttdeci">RegName * closure_args</div><div class="ttdoc">The closure arguments as an array. </div><div class="ttdef"><b>Definition:</b> bytecode.h:116</div></div>
+<div class="ttc" id="namespacetopi_html_a649c66231bc50f3ed98ac8bb6b6e2518"><div class="ttname"><a href="namespacetopi.html#a649c66231bc50f3ed98ac8bb6b6e2518">topi::shape</a></div><div class="ttdeci">Tensor shape(const Tensor &amp;src, DataType dtype, const std::string name=&quot;T_shape&quot;, const std::string tag=kInjective)</div><div class="ttdoc">Get the shape of input tensor. </div><div class="ttdef"><b>Definition:</b> transform.h:1375</div></div>
+<div class="ttc" id="structtvm_1_1runtime_1_1vm_1_1Instruction_html_a0f48c1e04fe9ba735576bef37caf9cce"><div class="ttname"><a href="structtvm_1_1runtime_1_1vm_1_1Instruction.html#a0f48c1e04fe9ba735576bef37caf9cce">tvm::runtime::vm::Instruction::dtype_hint</a></div><div class="ttdeci">DLDataType dtype_hint</div><div class="ttdoc">The hint of the dtype. </div><div class="ttdef"><b>Definition:</b> bytecode.h:198</div></div>
+<div class="ttc" id="structtvm_1_1runtime_1_1vm_1_1Instruction_html_a17f056cc4798d31c8bcee6903be8dd1d"><div class="ttname"><a href="structtvm_1_1runtime_1_1vm_1_1Instruction.html#a17f056cc4798d31c8bcee6903be8dd1d">tvm::runtime::vm::Instruction::dst</a></div><div class="ttdeci">RegName dst</div><div class="ttdoc">The destination register. </div><div class="ttdef"><b>Definition:</b> bytecode.h:85</div></div>
+<div class="ttc" id="structtvm_1_1runtime_1_1vm_1_1Instruction_html_aa60b1a70648dbba4e7ec35a56a29a02d"><div class="ttname"><a href="structtvm_1_1runtime_1_1vm_1_1Instruction.html#aa60b1a70648dbba4e7ec35a56a29a02d">tvm::runtime::vm::Instruction::func_index</a></div><div class="ttdeci">Index func_index</div><div class="ttdoc">The function to call. </div><div class="ttdef"><b>Definition:</b> bytecode.h:148</div></div>
+<div class="ttc" id="structtvm_1_1runtime_1_1vm_1_1Instruction_html_a5602ccf14b6bd90e33a38c6ab82b0b57"><div class="ttname"><a href="structtvm_1_1runtime_1_1vm_1_1Instruction.html#a5602ccf14b6bd90e33a38c6ab82b0b57">tvm::runtime::vm::Instruction::newshape</a></div><div class="ttdeci">RegName newshape</div><div class="ttdef"><b>Definition:</b> bytecode.h:205</div></div>
+<div class="ttc" id="structtvm_1_1runtime_1_1vm_1_1Instruction_html_a0a335ae91c7fd20f47bb6581dc3c620c"><div class="ttname"><a href="structtvm_1_1runtime_1_1vm_1_1Instruction.html#a0a335ae91c7fd20f47bb6581dc3c620c">tvm::runtime::vm::Instruction::offset</a></div><div class="ttdeci">Index offset</div><div class="ttdoc">The offset into the storage to allocate from. </div><div class="ttdef"><b>Definition:</b> bytecode.h:92</div></div>
+<div class="ttc" id="structtvm_1_1runtime_1_1vm_1_1Instruction_html_a0ac4dada6519d071a819cc897cb15cf1"><div class="ttname"><a href="structtvm_1_1runtime_1_1vm_1_1Instruction.html#a0ac4dada6519d071a819cc897cb15cf1">tvm::runtime::vm::Instruction::object</a></div><div class="ttdeci">RegName object</div><div class="ttdoc">The register to project from. </div><div class="ttdef"><b>Definition:</b> bytecode.h:168</div></div>
+<div class="ttc" id="structtvm_1_1runtime_1_1vm_1_1Instruction_html_a623d715b7b22a5fa853e8d000a6f1ecd"><div class="ttname"><a href="structtvm_1_1runtime_1_1vm_1_1Instruction.html#a623d715b7b22a5fa853e8d000a6f1ecd">tvm::runtime::vm::Instruction::field_index</a></div><div class="ttdeci">Index field_index</div><div class="ttdoc">The field to read out. </div><div class="ttdef"><b>Definition:</b> bytecode.h:170</div></div>
+<div class="ttc" id="namespacetvm_1_1runtime_1_1vm_html_a8d8d95ce8d629c7213f2f595917870ecaee7bac5c7a1354c4d644508d4d82380e"><div class="ttname"><a href="namespacetvm_1_1runtime_1_1vm.html#a8d8d95ce8d629c7213f2f595917870ecaee7bac5c7a1354c4d644508d4d82380e">tvm::runtime::vm::Opcode::AllocADT</a></div></div>
+<div class="ttc" id="namespacetvm_1_1runtime_1_1vm_html_a8d8d95ce8d629c7213f2f595917870eca882384ec38ce8d9582b57e70861730e4"><div class="ttname"><a href="namespacetvm_1_1runtime_1_1vm.html#a8d8d95ce8d629c7213f2f595917870eca882384ec38ce8d9582b57e70861730e4">tvm::runtime::vm::Opcode::Fatal</a></div></div>
+<div class="ttc" id="structtvm_1_1runtime_1_1vm_1_1Instruction_html_a173d5883d5721b633350c0bfc24122b9"><div class="ttname"><a href="structtvm_1_1runtime_1_1vm_1_1Instruction.html#a173d5883d5721b633350c0bfc24122b9">tvm::runtime::vm::Instruction::ndim</a></div><div class="ttdeci">uint32_t ndim</div><div class="ttdoc">The number of dimensions. </div><div class="ttdef"><b>Definition:</b> bytecode.h:94</div></div>
+<div class="ttc" id="namespacetvm_1_1runtime_1_1vm_html_a3bbbf700719e9dc3dda2bc25210c18ae"><div class="ttname"><a href="namespacetvm_1_1runtime_1_1vm.html#a3bbbf700719e9dc3dda2bc25210c18ae">tvm::runtime::vm::RegName</a></div><div class="ttdeci">int64_t RegName</div><div class="ttdoc">A register name. </div><div class="ttdef"><b>Definition:</b> bytecode.h:37</div></div>
+<div class="ttc" id="structtvm_1_1runtime_1_1vm_1_1Instruction_html_a46879dbe84105fb621a6167f8d73b223"><div class="ttname"><a href="structtvm_1_1runtime_1_1vm_1_1Instruction.html#a46879dbe84105fb621a6167f8d73b223">tvm::runtime::vm::Instruction::target</a></div><div class="ttdeci">RegName target</div><div class="ttdoc">The register containing the target value. </div><div class="ttdef"><b>Definition:</b> bytecode.h:140</div></div>
+<div class="ttc" id="structtvm_1_1runtime_1_1vm_1_1Instruction_html_a360b264ed892e620935b648e5a91a5ea"><div class="ttname"><a href="structtvm_1_1runtime_1_1vm_1_1Instruction.html#a360b264ed892e620935b648e5a91a5ea">tvm::runtime::vm::Instruction::arity</a></div><div class="ttdeci">Index arity</div><div class="ttdoc">The arity of the packed function. </div><div class="ttdef"><b>Definition:</b> bytecode.h:130</div></div>
+<div class="ttc" id="structtvm_1_1runtime_1_1vm_1_1Instruction_html_a3a175836bc0893d99935f32911e45bfd"><div class="ttname"><a href="structtvm_1_1runtime_1_1vm_1_1Instruction.html#a3a175836bc0893d99935f32911e45bfd">tvm::runtime::vm::Instruction::closure</a></div><div class="ttdeci">RegName closure</div><div class="ttdoc">The register containing the closure. </div><div class="ttdef"><b>Definition:</b> bytecode.h:112</div></div>
+<div class="ttc" id="structtvm_1_1runtime_1_1vm_1_1Instruction_html_a3412cabd3b4f42f106f56fc22257f6ca"><div class="ttname"><a href="structtvm_1_1runtime_1_1vm_1_1Instruction.html#a3412cabd3b4f42f106f56fc22257f6ca">tvm::runtime::vm::Instruction::storage</a></div><div class="ttdeci">RegName storage</div><div class="ttdoc">The storage to allocate from. </div><div class="ttdef"><b>Definition:</b> bytecode.h:90</div></div>
+<div class="ttc" id="namespacetvm_1_1runtime_1_1vm_html_a3597867d2db714bf760876a23d6b7d3d"><div class="ttname"><a href="namespacetvm_1_1runtime_1_1vm.html#a3597867d2db714bf760876a23d6b7d3d">tvm::runtime::vm::Index</a></div><div class="ttdeci">int64_t Index</div><div class="ttdoc">An alias for the integer type used ubiquitously in the VM. </div><div class="ttdef"><b>Definition:</b> bytecode.h:42</div></div>
+<div class="ttc" id="structtvm_1_1runtime_1_1vm_1_1Instruction_html_a5d98a3b5b50e6fa9029d05f741c0bce9"><div class="ttname"><a href="structtvm_1_1runtime_1_1vm_1_1Instruction.html#a5d98a3b5b50e6fa9029d05f741c0bce9">tvm::runtime::vm::Instruction::num_args</a></div><div class="ttdeci">Index num_args</div><div class="ttdoc">The number of arguments to the function. </div><div class="ttdef"><b>Definition:</b> bytecode.h:150</div></div>
+<div class="ttc" id="structtvm_1_1runtime_1_1vm_1_1Instruction_html_a8d2b2e37051d12d60e6ae614d49de509"><div class="ttname"><a href="structtvm_1_1runtime_1_1vm_1_1Instruction.html#a8d2b2e37051d12d60e6ae614d49de509">tvm::runtime::vm::Instruction::alignment</a></div><div class="ttdeci">Index alignment</div><div class="ttdoc">The alignment of the allocation. </div><div class="ttdef"><b>Definition:</b> bytecode.h:196</div></div>
+<div class="ttc" id="namespacetvm_1_1runtime_1_1vm_html_a8d8d95ce8d629c7213f2f595917870ec"><div class="ttname"><a href="namespacetvm_1_1runtime_1_1vm.html#a8d8d95ce8d629c7213f2f595917870ec">tvm::runtime::vm::Opcode</a></div><div class="ttdeci">Opcode</div><div class="ttdoc">An enumeration of Relay&amp;#39;s opcodes. </div><div class="ttdef"><b>Definition:</b> bytecode.h:49</div></div>
+<div class="ttc" id="structtvm_1_1runtime_1_1vm_1_1Instruction_html_a58e6e5eba0eba678b94273ef7deb1df2"><div class="ttname"><a href="structtvm_1_1runtime_1_1vm_1_1Instruction.html#a58e6e5eba0eba678b94273ef7deb1df2">tvm::runtime::vm::Instruction::true_offset</a></div><div class="ttdeci">Index true_offset</div><div class="ttdoc">The program counter offset for the true branch. </div><div class="ttdef"><b>Definition:</b> bytecode.h:142</div></div>
+<div class="ttc" id="structtvm_1_1runtime_1_1vm_1_1Instruction_html_a25adb383014a74a9c4ac805beefe86b6"><div class="ttname"><a href="structtvm_1_1runtime_1_1vm_1_1Instruction.html#a25adb383014a74a9c4ac805beefe86b6">tvm::runtime::vm::Instruction::datatype_fields</a></div><div class="ttdeci">RegName * datatype_fields</div><div class="ttdoc">The fields as an array. </div><div class="ttdef"><b>Definition:</b> bytecode.h:182</div></div>
+<div class="ttc" id="namespacetvm_1_1runtime_1_1vm_html_a8d8d95ce8d629c7213f2f595917870eca564a5812fad1ae9a2db0d77614c5d8bc"><div class="ttname"><a href="namespacetvm_1_1runtime_1_1vm.html#a8d8d95ce8d629c7213f2f595917870eca564a5812fad1ae9a2db0d77614c5d8bc">tvm::runtime::vm::Opcode::AllocClosure</a></div></div>
+<div class="ttc" id="namespacetvm_1_1runtime_1_1vm_html_a8d8d95ce8d629c7213f2f595917870ecac6aefdb1a98b77723cb8cbd758d8bd30"><div class="ttname"><a href="namespacetvm_1_1runtime_1_1vm.html#a8d8d95ce8d629c7213f2f595917870ecac6aefdb1a98b77723cb8cbd758d8bd30">tvm::runtime::vm::Opcode::ReshapeTensor</a></div></div>
+<div class="ttc" id="data__type_8h_html"><div class="ttname"><a href="data__type_8h.html">data_type.h</a></div></div>
+<div class="ttc" id="structtvm_1_1runtime_1_1vm_1_1Instruction_html_a4f907889caa7c348a3a2dea88e89b827"><div class="ttname"><a href="structtvm_1_1runtime_1_1vm_1_1Instruction.html#a4f907889caa7c348a3a2dea88e89b827">tvm::runtime::vm::Instruction::allocation_size</a></div><div class="ttdeci">RegName allocation_size</div><div class="ttdoc">The size of the allocation. </div><div class="ttdef"><b>Definition:</b> bytecode.h:194</div></div>
+<div class="ttc" id="namespacetvm_1_1runtime_1_1vm_html_a8d8d95ce8d629c7213f2f595917870ecabbfa589e414211911a8254ba7896b127"><div class="ttname"><a href="namespacetvm_1_1runtime_1_1vm.html#a8d8d95ce8d629c7213f2f595917870ecabbfa589e414211911a8254ba7896b127">tvm::runtime::vm::Opcode::GetTag</a></div></div>
+<div class="ttc" id="structtvm_1_1runtime_1_1vm_1_1Instruction_html_ad4b0bb0bc9012b8e34c6fd621390532f"><div class="ttname"><a href="structtvm_1_1runtime_1_1vm_1_1Instruction.html#ad4b0bb0bc9012b8e34c6fd621390532f">tvm::runtime::vm::Instruction::num_closure_args</a></div><div class="ttdeci">Index num_closure_args</div><div class="ttdoc">The number of arguments to the closure. </div><div class="ttdef"><b>Definition:</b> bytecode.h:114</div></div>
+<div class="ttc" id="structtvm_1_1runtime_1_1vm_1_1Instruction_html_a720b762553a301b526d66042afcd5ca3"><div class="ttname"><a href="structtvm_1_1runtime_1_1vm_1_1Instruction.html#a720b762553a301b526d66042afcd5ca3">tvm::runtime::vm::Instruction::free_vars</a></div><div class="ttdeci">RegName * free_vars</div><div class="ttdoc">The free variables as an array. </div><div class="ttdef"><b>Definition:</b> bytecode.h:190</div></div>
+<div class="ttc" id="structtvm_1_1runtime_1_1vm_1_1Instruction_html_a6fc678bca0e215303087981a79f23b7f"><div class="ttname"><a href="structtvm_1_1runtime_1_1vm_1_1Instruction.html#a6fc678bca0e215303087981a79f23b7f">tvm::runtime::vm::Instruction::invoke_args_registers</a></div><div class="ttdeci">RegName * invoke_args_registers</div><div class="ttdoc">The registers containing the arguments. </div><div class="ttdef"><b>Definition:</b> bytecode.h:152</div></div>
+<div class="ttc" id="namespacetvm_1_1runtime_1_1vm_html_a8d8d95ce8d629c7213f2f595917870ecad3e2f43779da90565fa9c24f9175dc04"><div class="ttname"><a href="namespacetvm_1_1runtime_1_1vm.html#a8d8d95ce8d629c7213f2f595917870ecad3e2f43779da90565fa9c24f9175dc04">tvm::runtime::vm::Opcode::GetField</a></div></div>
+<div class="ttc" id="structtvm_1_1runtime_1_1vm_1_1Instruction_html_a7349fa2a2e70149d4af08289c539150f"><div class="ttname"><a href="structtvm_1_1runtime_1_1vm_1_1Instruction.html#a7349fa2a2e70149d4af08289c539150f">tvm::runtime::vm::Instruction::constructor_tag</a></div><div class="ttdeci">Index constructor_tag</div><div class="ttdoc">The datatype&amp;#39;s constructor tag. </div><div class="ttdef"><b>Definition:</b> bytecode.h:178</div></div>
+<div class="ttc" id="namespacetvm_1_1runtime_1_1vm_html_a8d8d95ce8d629c7213f2f595917870eca6bc362dbf494c61ea117fe3c71ca48a5"><div class="ttname"><a href="namespacetvm_1_1runtime_1_1vm.html#a8d8d95ce8d629c7213f2f595917870eca6bc362dbf494c61ea117fe3c71ca48a5">tvm::runtime::vm::Opcode::Move</a></div></div>
+<div class="ttc" id="structtvm_1_1runtime_1_1vm_1_1Instruction_html_a0a650382fcb2cacf9d6de7007aecf3c5"><div class="ttname"><a href="structtvm_1_1runtime_1_1vm_1_1Instruction.html#a0a650382fcb2cacf9d6de7007aecf3c5">tvm::runtime::vm::Instruction::shape_register</a></div><div class="ttdeci">RegName shape_register</div><div class="ttdoc">The register to read the shape out of. </div><div class="ttdef"><b>Definition:</b> bytecode.h:106</div></div>
+<div class="ttc" id="structtvm_1_1runtime_1_1vm_1_1Instruction_html_a50da0d506e9a2bffeaf75c702cf2cc33"><div class="ttname"><a href="structtvm_1_1runtime_1_1vm_1_1Instruction.html#a50da0d506e9a2bffeaf75c702cf2cc33">tvm::runtime::vm::Instruction::from</a></div><div class="ttdeci">RegName from</div><div class="ttdoc">The source register for a move operation. </div><div class="ttdef"><b>Definition:</b> bytecode.h:124</div></div>
+<div class="ttc" id="structtvm_1_1runtime_1_1vm_1_1Instruction_html_adebc0e955069bdaa543df3a908351532"><div class="ttname"><a href="structtvm_1_1runtime_1_1vm_1_1Instruction.html#adebc0e955069bdaa543df3a908351532">tvm::runtime::vm::Instruction::test</a></div><div class="ttdeci">RegName test</div><div class="ttdoc">The register containing the test value. </div><div class="ttdef"><b>Definition:</b> bytecode.h:138</div></div>
+<div class="ttc" id="namespacetvm_1_1runtime_1_1vm_html_a8d8d95ce8d629c7213f2f595917870ecaa4228a09dd66155de8e93a39245768bd"><div class="ttname"><a href="namespacetvm_1_1runtime_1_1vm.html#a8d8d95ce8d629c7213f2f595917870ecaa4228a09dd66155de8e93a39245768bd">tvm::runtime::vm::Opcode::Ret</a></div></div>
+<div class="ttc" id="namespacetvm_1_1runtime_1_1vm_html_a8d8d95ce8d629c7213f2f595917870ecaa15cc1ca91f763a268e85bbc298987d7"><div class="ttname"><a href="namespacetvm_1_1runtime_1_1vm.html#a8d8d95ce8d629c7213f2f595917870ecaa15cc1ca91f763a268e85bbc298987d7">tvm::runtime::vm::Opcode::AllocStorage</a></div></div>
+<div class="ttc" id="structtvm_1_1runtime_1_1vm_1_1Instruction_html_a45fa340afb68a10e339b9482fda65ba7"><div class="ttname"><a href="structtvm_1_1runtime_1_1vm_1_1Instruction.html#a45fa340afb68a10e339b9482fda65ba7">tvm::runtime::vm::Instruction::num_fields</a></div><div class="ttdeci">Index num_fields</div><div class="ttdoc">The number of fields to store in the datatype. </div><div class="ttdef"><b>Definition:</b> bytecode.h:180</div></div>
+<div class="ttc" id="structtvm_1_1runtime_1_1vm_1_1Instruction_html_a5a39350aa263659863295deab57996ed"><div class="ttname"><a href="structtvm_1_1runtime_1_1vm_1_1Instruction.html#a5a39350aa263659863295deab57996ed">tvm::runtime::vm::Instruction::packed_args</a></div><div class="ttdeci">RegName * packed_args</div><div class="ttdoc">The arguments to pass to the packed function. </div><div class="ttdef"><b>Definition:</b> bytecode.h:134</div></div>
+<div class="ttc" id="namespacetvm_1_1runtime_1_1vm_html_a8d8d95ce8d629c7213f2f595917870eca2bcae1ed3af462c3c4533a22377a75ea"><div class="ttname"><a href="namespacetvm_1_1runtime_1_1vm.html#a8d8d95ce8d629c7213f2f595917870eca2bcae1ed3af462c3c4533a22377a75ea">tvm::runtime::vm::Opcode::AllocTensor</a></div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.11
+</small></address>
+</body>
+</html>
diff --git a/docs/api/doxygen/c__runtime__api_8h.html b/docs/api/doxygen/c__runtime__api_8h.html
index f2c3aad..f829e8e 100644
--- a/docs/api/doxygen/c__runtime__api_8h.html
+++ b/docs/api/doxygen/c__runtime__api_8h.html
@@ -107,7 +107,7 @@ Include dependency graph for c_runtime_api.h:</div>
 </div><div class="textblock"><div class="dynheader">
 This graph shows which files directly or indirectly include this file:</div>
 <div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="c__runtime__api_8h__dep__incl.svg" width="3108" height="1528"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
+<div class="center"><iframe scrolling="no" frameborder="0" src="c__runtime__api_8h__dep__incl.svg" width="3880" height="1259"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
 </div>
 </div>
 </div>
diff --git a/docs/api/doxygen/c__runtime__api_8h__dep__incl.svg b/docs/api/doxygen/c__runtime__api_8h__dep__incl.svg
index db0e154..52a3d9e 100644
--- a/docs/api/doxygen/c__runtime__api_8h__dep__incl.svg
+++ b/docs/api/doxygen/c__runtime__api_8h__dep__incl.svg
@@ -4,1149 +4,1120 @@
 <!-- Generated by graphviz version 2.38.0 (20140413.2041)
  -->
 <!-- Title: include/tvm/runtime/c_runtime_api.h Pages: 1 -->
-<svg width="2331pt" height="1146pt"
- viewBox="0.00 0.00 2330.50 1146.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 1142)">
+<svg width="2910pt" height="944pt"
+ viewBox="0.00 0.00 2910.08 944.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 940)">
 <title>include/tvm/runtime/c_runtime_api.h</title>
-<polygon fill="white" stroke="none" points="-4,4 -4,-1142 2326.5,-1142 2326.5,4 -4,4"/>
+<polygon fill="white" stroke="none" points="-4,4 -4,-940 2906.08,-940 2906.08,4 -4,4"/>
 <!-- Node1 -->
 <g id="node1" class="node"><title>Node1</title>
-<polygon fill="#bfbfbf" stroke="black" points="769,-1107.5 769,-1137.5 882,-1137.5 882,-1107.5 769,-1107.5"/>
-<text text-anchor="start" x="777" y="-1125.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/runtime</text>
-<text text-anchor="middle" x="825.5" y="-1114.5" font-family="Helvetica,sans-Serif" font-size="10.00">/c_runtime_api.h</text>
+<polygon fill="#bfbfbf" stroke="black" points="1808.53,-905.5 1808.53,-935.5 1921.53,-935.5 1921.53,-905.5 1808.53,-905.5"/>
+<text text-anchor="start" x="1816.53" y="-923.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/runtime</text>
+<text text-anchor="middle" x="1865.03" y="-912.5" font-family="Helvetica,sans-Serif" font-size="10.00">/c_runtime_api.h</text>
 </g>
 <!-- Node2 -->
 <g id="node2" class="node"><title>Node2</title>
-<g id="a_node2"><a xlink:href="node_8h.html" target="_top" xlink:title="Definitions and helper macros for IR/AST nodes. ">
-<polygon fill="white" stroke="black" points="1349,-593.5 1349,-612.5 1484,-612.5 1484,-593.5 1349,-593.5"/>
-<text text-anchor="middle" x="1416.5" y="-600.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/node/node.h</text>
+<g id="a_node2"><a xlink:href="compute__dag_8h.html" target="_top" xlink:title="The auto&#45;scheduler&#39;s computational graph and related program analyses. ">
+<polygon fill="white" stroke="black" points="54.5284,-838.5 54.5284,-868.5 203.528,-868.5 203.528,-838.5 54.5284,-838.5"/>
+<text text-anchor="start" x="62.5284" y="-856.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/auto_scheduler</text>
+<text text-anchor="middle" x="129.028" y="-845.5" font-family="Helvetica,sans-Serif" font-size="10.00">/compute_dag.h</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node2 -->
 <g id="edge1" class="edge"><title>Node1&#45;&gt;Node2</title>
-<path fill="none" stroke="midnightblue" d="M885.086,-1104.55C914.73,-1095.57 950.891,-1083.75 982.5,-1071 1006.02,-1061.51 1376.59,-889.76 1392.5,-870 1415.89,-840.948 1412.5,-825.797 1412.5,-788.5 1412.5,-788.5 1412.5,-788.5 1412.5,-719.5 1412.5,-679.572 1414.92,-631.927 1415.99,-612.69"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="883.87,-1101.27 875.298,-1107.49 885.882,-1107.97 883.87,-1101.27"/>
+<path fill="none" stroke="midnightblue" d="M1798.31,-918.098C1585.87,-913.46 906.111,-897.277 344.028,-869 297.323,-866.65 244.969,-863.138 203.617,-860.159"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1798.3,-921.599 1808.37,-918.317 1798.45,-914.6 1798.3,-921.599"/>
 </g>
-<!-- Node16 -->
-<g id="node16" class="node"><title>Node16</title>
-<g id="a_node16"><a xlink:href="tir_2expr_8h.html" target="_top" xlink:title="TIR expressions. ">
-<polygon fill="white" stroke="red" points="1197,-291.5 1197,-310.5 1314,-310.5 1314,-291.5 1197,-291.5"/>
-<text text-anchor="middle" x="1255.5" y="-298.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/tir/expr.h</text>
+<!-- Node5 -->
+<g id="node5" class="node"><title>Node5</title>
+<g id="a_node5"><a xlink:href="node_8h.html" target="_top" xlink:title="Definitions and helper macros for IR/AST nodes. ">
+<polygon fill="white" stroke="black" points="775.528,-375 775.528,-394 910.528,-394 910.528,-375 775.528,-375"/>
+<text text-anchor="middle" x="843.028" y="-382" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/node/node.h</text>
 </a>
 </g>
 </g>
-<!-- Node1&#45;&gt;Node16 -->
-<g id="edge143" class="edge"><title>Node1&#45;&gt;Node16</title>
-<path fill="none" stroke="midnightblue" d="M758.663,-1119.64C620.839,-1115.18 314.94,-1101.9 279.5,-1071 251.464,-1046.56 260.5,-1026.69 260.5,-989.5 260.5,-989.5 260.5,-989.5 260.5,-920.5 260.5,-763.188 533.662,-415.037 675.5,-347 766.449,-303.374 1068.59,-300.431 1196.97,-301.244"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="758.582,-1123.14 768.688,-1119.95 758.804,-1116.14 758.582,-1123.14"/>
+<!-- Node1&#45;&gt;Node5 -->
+<g id="edge4" class="edge"><title>Node1&#45;&gt;Node5</title>
+<path fill="none" stroke="midnightblue" d="M1798.23,-917.202C1506.42,-906.732 358.028,-860.865 358.028,-787.5 358.028,-787.5 358.028,-787.5 358.028,-651.5 358.028,-614.306 352.744,-598.172 377.028,-570 480.71,-449.721 673.392,-407.168 775.486,-392.648"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1798.13,-920.7 1808.25,-917.56 1798.38,-913.705 1798.13,-920.7"/>
 </g>
-<!-- Node23 -->
-<g id="node23" class="node"><title>Node23</title>
-<g id="a_node23"><a xlink:href="reflection_8h.html" target="_top" xlink:title="Reflection and serialization of compiler IR/AST nodes. ">
-<polygon fill="white" stroke="black" points="745,-649.5 745,-668.5 900,-668.5 900,-649.5 745,-649.5"/>
-<text text-anchor="middle" x="822.5" y="-656.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/node/reflection.h</text>
+<!-- Node12 -->
+<g id="node12" class="node"><title>Node12</title>
+<g id="a_node12"><a xlink:href="tir_2expr_8h.html" target="_top" xlink:title="TIR expressions. ">
+<polygon fill="white" stroke="red" points="1194.53,-67.5 1194.53,-86.5 1311.53,-86.5 1311.53,-67.5 1194.53,-67.5"/>
+<text text-anchor="middle" x="1253.03" y="-74.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/tir/expr.h</text>
 </a>
 </g>
 </g>
-<!-- Node1&#45;&gt;Node23 -->
-<g id="edge45" class="edge"><title>Node1&#45;&gt;Node23</title>
-<path fill="none" stroke="midnightblue" d="M758.893,-1116.41C676.706,-1109.24 542.442,-1094.36 498.5,-1071 462.678,-1051.95 451.297,-1041.78 436.5,-1004 409.754,-935.718 393.964,-898.737 436.5,-839 464.871,-799.156 495.472,-822.105 540.5,-803 594.444,-780.112 754.55,-695.94 806.224,-668.623"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="758.632,-1119.9 768.894,-1117.26 759.23,-1112.92 758.632,-1119.9"/>
+<!-- Node1&#45;&gt;Node12 -->
+<g id="edge136" class="edge"><title>Node1&#45;&gt;Node12</title>
+<path fill="none" stroke="midnightblue" d="M1931.87,-918.827C2025.04,-916.45 2198.57,-906.779 2341.03,-869 2412.78,-849.971 2435.15,-847.212 2494.03,-802 2563.35,-748.767 2624.58,-721.171 2601.03,-637 2575.18,-544.621 2489.03,-548.426 2489.03,-452.5 2489.03,-452.5 2489.03,-452.5 2489.03,-199 2489.03,-127.418 2416.09,-141.835 2347.03,-123 2247.08,-95.7399 1524.03,-82.275 1311.58,-78.8783"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1931.65,-915.331 1921.73,-919.064 1931.81,-922.329 1931.65,-915.331"/>
 </g>
-<!-- Node25 -->
-<g id="node25" class="node"><title>Node25</title>
-<g id="a_node25"><a xlink:href="serialization_8h.html" target="_top" xlink:title="include/tvm/node/serialization.h">
-<polygon fill="white" stroke="black" points="1310.5,-979 1310.5,-998 1478.5,-998 1478.5,-979 1310.5,-979"/>
-<text text-anchor="middle" x="1394.5" y="-986" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/node/serialization.h</text>
+<!-- Node20 -->
+<g id="node20" class="node"><title>Node20</title>
+<g id="a_node20"><a xlink:href="reflection_8h.html" target="_top" xlink:title="Reflection and serialization of compiler IR/AST nodes. ">
+<polygon fill="white" stroke="black" points="1403.53,-442 1403.53,-461 1558.53,-461 1558.53,-442 1403.53,-442"/>
+<text text-anchor="middle" x="1481.03" y="-449" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/node/reflection.h</text>
 </a>
 </g>
 </g>
-<!-- Node1&#45;&gt;Node25 -->
-<g id="edge49" class="edge"><title>Node1&#45;&gt;Node25</title>
-<path fill="none" stroke="midnightblue" d="M892.245,-1119.09C1004.37,-1114.26 1225.26,-1101.14 1296.5,-1071 1336.44,-1054.1 1372.67,-1015.3 1387.46,-998.047"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="891.914,-1115.6 882.07,-1119.52 892.209,-1122.59 891.914,-1115.6"/>
+<!-- Node1&#45;&gt;Node20 -->
+<g id="edge31" class="edge"><title>Node1&#45;&gt;Node20</title>
+<path fill="none" stroke="midnightblue" d="M1798.29,-918.583C1720.26,-915.738 1588.12,-905.356 1481.03,-869 1424.65,-849.861 1406.23,-844.982 1365.03,-802 1333.02,-768.611 1321.81,-749.515 1330.03,-704 1349.57,-595.744 1443.63,-491.123 1472.55,-461.073"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1798.36,-922.088 1808.47,-918.923 1798.59,-915.091 1798.36,-922.088"/>
 </g>
-<!-- Node26 -->
-<g id="node26" class="node"><title>Node26</title>
-<g id="a_node26"><a xlink:href="include_2tvm_2relay_2qnn_2transform_8h.html" target="_top" xlink:title="include/tvm/relay/qnn\l/transform.h">
-<polygon fill="white" stroke="black" points="289,-1040.5 289,-1070.5 408,-1070.5 408,-1040.5 289,-1040.5"/>
-<text text-anchor="start" x="297" y="-1058.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/qnn</text>
-<text text-anchor="middle" x="348.5" y="-1047.5" font-family="Helvetica,sans-Serif" font-size="10.00">/transform.h</text>
+<!-- Node22 -->
+<g id="node22" class="node"><title>Node22</title>
+<g id="a_node22"><a xlink:href="serialization_8h.html" target="_top" xlink:title="include/tvm/node/serialization.h">
+<polygon fill="white" stroke="black" points="1669.03,-777 1669.03,-796 1837.03,-796 1837.03,-777 1669.03,-777"/>
+<text text-anchor="middle" x="1753.03" y="-784" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/node/serialization.h</text>
+</a>
+</g>
+</g>
+<!-- Node1&#45;&gt;Node22 -->
+<g id="edge34" class="edge"><title>Node1&#45;&gt;Node22</title>
+<path fill="none" stroke="midnightblue" d="M1846.48,-897.639C1821.33,-868 1777.58,-816.432 1760.32,-796.097"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1843.9,-900.013 1853.04,-905.374 1849.24,-895.484 1843.9,-900.013"/>
+</g>
+<!-- Node23 -->
+<g id="node23" class="node"><title>Node23</title>
+<g id="a_node23"><a xlink:href="include_2tvm_2relay_2qnn_2transform_8h.html" target="_top" xlink:title="include/tvm/relay/qnn\l/transform.h">
+<polygon fill="white" stroke="black" points="2555.53,-838.5 2555.53,-868.5 2674.53,-868.5 2674.53,-838.5 2555.53,-838.5"/>
+<text text-anchor="start" x="2563.53" y="-856.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/qnn</text>
+<text text-anchor="middle" x="2615.03" y="-845.5" font-family="Helvetica,sans-Serif" font-size="10.00">/transform.h</text>
+</a>
+</g>
+</g>
+<!-- Node1&#45;&gt;Node23 -->
+<g id="edge35" class="edge"><title>Node1&#45;&gt;Node23</title>
+<path fill="none" stroke="midnightblue" d="M1932.07,-917.135C2053.82,-912.254 2319.19,-898.913 2541.03,-869 2545.7,-868.37 2550.52,-867.631 2555.36,-866.825"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1931.65,-913.649 1921.8,-917.541 1931.93,-920.643 1931.65,-913.649"/>
+</g>
+<!-- Node24 -->
+<g id="node24" class="node"><title>Node24</title>
+<g id="a_node24"><a xlink:href="c__backend__api_8h.html" target="_top" xlink:title="TVM runtime backend API. ">
+<polygon fill="white" stroke="black" points="2731.53,-838.5 2731.53,-868.5 2844.53,-868.5 2844.53,-838.5 2731.53,-838.5"/>
+<text text-anchor="start" x="2739.53" y="-856.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/runtime</text>
+<text text-anchor="middle" x="2788.03" y="-845.5" font-family="Helvetica,sans-Serif" font-size="10.00">/c_backend_api.h</text>
 </a>
 </g>
 </g>
-<!-- Node1&#45;&gt;Node26 -->
-<g id="edge50" class="edge"><title>Node1&#45;&gt;Node26</title>
-<path fill="none" stroke="midnightblue" d="M758.982,-1114.58C678.92,-1105.93 540.51,-1089.93 422.5,-1071 417.847,-1070.25 413.039,-1069.43 408.211,-1068.57"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="758.611,-1118.06 768.928,-1115.65 759.359,-1111.1 758.611,-1118.06"/>
+<!-- Node1&#45;&gt;Node24 -->
+<g id="edge36" class="edge"><title>Node1&#45;&gt;Node24</title>
+<path fill="none" stroke="midnightblue" d="M1931.62,-918.769C2075.55,-916.486 2426.13,-907.129 2717.03,-869 2721.64,-868.395 2726.41,-867.662 2731.18,-866.851"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1931.56,-915.27 1921.62,-918.922 1931.67,-922.269 1931.56,-915.27"/>
 </g>
 <!-- Node27 -->
 <g id="node27" class="node"><title>Node27</title>
-<g id="a_node27"><a xlink:href="c__backend__api_8h.html" target="_top" xlink:title="TVM runtime backend API. ">
-<polygon fill="white" stroke="black" points="119,-1040.5 119,-1070.5 232,-1070.5 232,-1040.5 119,-1040.5"/>
-<text text-anchor="start" x="127" y="-1058.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/runtime</text>
-<text text-anchor="middle" x="175.5" y="-1047.5" font-family="Helvetica,sans-Serif" font-size="10.00">/c_backend_api.h</text>
+<g id="a_node27"><a xlink:href="crt_2packed__func_8h.html" target="_top" xlink:title="Type&#45;erased function used across TVM API. ">
+<polygon fill="white" stroke="black" points="2750.53,-637.5 2750.53,-667.5 2863.53,-667.5 2863.53,-637.5 2750.53,-637.5"/>
+<text text-anchor="start" x="2758.53" y="-655.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/runtime</text>
+<text text-anchor="middle" x="2807.03" y="-644.5" font-family="Helvetica,sans-Serif" font-size="10.00">/crt/packed_func.h</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node27 -->
-<g id="edge51" class="edge"><title>Node1&#45;&gt;Node27</title>
-<path fill="none" stroke="midnightblue" d="M758.853,-1118.17C650.839,-1112.22 431.021,-1097.8 246.5,-1071 241.893,-1070.33 237.135,-1069.55 232.366,-1068.71"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="758.777,-1121.67 768.953,-1118.72 759.157,-1114.68 758.777,-1121.67"/>
+<g id="edge43" class="edge"><title>Node1&#45;&gt;Node27</title>
+<path fill="none" stroke="midnightblue" d="M1931.89,-919.769C2141.28,-920.105 2775.1,-917.097 2853.03,-869 2915.85,-830.23 2913.3,-765.202 2872.03,-704 2861.88,-688.953 2845.81,-676.407 2832.18,-667.584"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1931.66,-916.268 1921.65,-919.749 1931.65,-923.268 1931.66,-916.268"/>
 </g>
-<!-- Node30 -->
-<g id="node30" class="node"><title>Node30</title>
-<g id="a_node30"><a xlink:href="crt_2packed__func_8h.html" target="_top" xlink:title="Type&#45;erased function used across TVM API. ">
-<polygon fill="white" stroke="black" points="43,-839.5 43,-869.5 156,-869.5 156,-839.5 43,-839.5"/>
-<text text-anchor="start" x="51" y="-857.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/runtime</text>
-<text text-anchor="middle" x="99.5" y="-846.5" font-family="Helvetica,sans-Serif" font-size="10.00">/crt/packed_func.h</text>
+<!-- Node28 -->
+<g id="node28" class="node"><title>Node28</title>
+<g id="a_node28"><a xlink:href="graph__runtime_8h.html" target="_top" xlink:title="Tiny graph runtime that can run graph containing only tvm PackedFunc. ">
+<polygon fill="white" stroke="black" points="2679.53,-570.5 2679.53,-600.5 2794.53,-600.5 2794.53,-570.5 2679.53,-570.5"/>
+<text text-anchor="start" x="2687.53" y="-588.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/runtime</text>
+<text text-anchor="middle" x="2737.03" y="-577.5" font-family="Helvetica,sans-Serif" font-size="10.00">/crt/graph_runtime.h</text>
 </a>
 </g>
... 170003 lines suppressed ...