[Arith] add SizeVar representing non-neg valued variable in a tensor shape (#4684)
authorYizhi Liu <liuyizhi@apache.org>
Thu, 16 Jan 2020 06:07:40 +0000 (22:07 -0800)
committerGitHub <noreply@github.com>
Thu, 16 Jan 2020 06:07:40 +0000 (22:07 -0800)
commit3a672e3eba1eb83616a4457aab3d11376463deac
treeac6afaab3f681da653f19135f23961cf412eb05d
parentd756d3ca910656285c4ecbfa121acc3b38799df3
[Arith] add SizeVar representing non-neg valued variable in a tensor shape (#4684)

* [arith] add ShapeVar representing non-neg valued variable in a tensor shape

* bounder remover; deal with div in int_set differently

* fix bounder_remover

* migrate unittest to use shape_var

* use tvm.shape_var in integration & relay tests

* add test case; fix Var register

* fix lint

* fix lint again

* add default ShapeVar visitor in Relay

* fix override

* fix ShapeVar visit bug

* revert IntervalSet for shape_var

* remove bound_remover

* remove is_var; use constructor for shapevar/var instead

* ShapeVar -> SizeVar; add constructor comments

* shape_var -> size_var in doc

* tindex -> size
62 files changed:
docs/api/python/tvm.rst
include/tvm/expr.h
include/tvm/ir.h
include/tvm/ir_functor_ext.h
python/tvm/api.py
python/tvm/expr.py
python/tvm/hybrid/preprocessor.py
src/api/api_ir.cc
src/arithmetic/bound_deducer.cc
src/arithmetic/const_int_bound.cc
src/arithmetic/int_set.cc
src/ir/attr_functor.h
src/ir/attrs.cc
src/lang/expr.cc
src/lang/ir.cc
src/pass/ir_functor.cc
src/pass/ssa.cc
src/pass/tensor_core.cc
src/schedule/bound.cc
tests/python/contrib/test_sparse.py
tests/python/integration/test_ewise.py
tests/python/integration/test_gemm.py
tests/python/integration/test_reduce.py
tests/python/integration/test_scan.py
tests/python/relay/test_ir_text_printer.py
tests/python/relay/test_op_level1.py
tests/python/relay/test_op_level10.py
tests/python/relay/test_op_level2.py
tests/python/relay/test_op_level3.py
tests/python/relay/test_op_level4.py
tests/python/relay/test_op_level5.py
tests/python/unittest/test_arith_const_int_bound.py
tests/python/unittest/test_arith_intset.py
tests/python/unittest/test_arith_stmt_simplify.py
tests/python/unittest/test_build_lower.py
tests/python/unittest/test_codegen_arm.py
tests/python/unittest/test_codegen_c_host.py
tests/python/unittest/test_codegen_device.py
tests/python/unittest/test_codegen_llvm.py
tests/python/unittest/test_codegen_rocm.py
tests/python/unittest/test_codegen_static_init.py
tests/python/unittest/test_codegen_vm_basic.py
tests/python/unittest/test_hybrid_script.py
tests/python/unittest/test_ir_builder.py
tests/python/unittest/test_lang_buffer.py
tests/python/unittest/test_lang_group.py
tests/python/unittest/test_lang_schedule.py
tests/python/unittest/test_lang_tag.py
tests/python/unittest/test_lang_tensor.py
tests/python/unittest/test_lang_tensor_overload_op.py
tests/python/unittest/test_lang_verify_compute.py
tests/python/unittest/test_module_load.py
tests/python/unittest/test_pass_bound_checkers.py
tests/python/unittest/test_pass_decorate_device_scope.py
tests/python/unittest/test_pass_inline.py
tests/python/unittest/test_pass_loop_partition.py
tests/python/unittest/test_pass_makeapi.py
tests/python/unittest/test_pass_split_host_device.py
tests/python/unittest/test_pass_storage_flatten.py
tests/python/unittest/test_pass_storage_sync.py
tests/python/unittest/test_pass_unroll.py
topi/python/topi/nn/conv2d.py