Getting another issue. In test case https://github.com/kevinthesun/tvm/blob/RefactorSSDOperator/topi/tests/python/test_topi_vision.py#L164, the index of const_range will unexpectedly goes out of range in if statement. In debugging mode, I feed in numpy and it can generate correct result.
File "test_topi_vision.py", line 262, in <module>
test_multibox_prior()
File "test_topi_vision.py", line 164, in test_multibox_prior
verify_multibox_prior((1, 3, 224, 224), sizes=(0.5, 0.25, 0.1), ratios=(1, 2, 0.5))
File "test_topi_vision.py", line 159, in verify_multibox_prior
check_device(device)
File "test_topi_vision.py", line 147, in check_device
out = ssd.multibox_prior(data, sizes, ratios, steps, offsets, clip)
File "<decorator-gen-107>", line 2, in multibox_prior
File "/Users/wayao/anaconda/lib/python2.7/site-packages/tvm-0.5.dev0-py2.7-macosx-10.6-x86_64.egg/tvm/target.py", line 357, in dispatch_func
return func(*args, **kwargs)
File "/Users/wayao/anaconda/lib/python2.7/site-packages/topi-0.5.dev0-py2.7.egg/topi/vision/ssd/multibox.py", line 107, in multibox_prior
tvm.convert(steps), tvm.convert(offsets))
File "<decorator-gen-106>", line 2, in hybrid_multibox_prior
File "/Users/wayao/anaconda/lib/python2.7/site-packages/tvm-0.5.dev0-py2.7-macosx-10.6-x86_64.egg/tvm/hybrid/api.py", line 27, in wrapped_func
parser = parse_python(src, func.__globals__, args)
File "/Users/wayao/anaconda/lib/python2.7/site-packages/tvm-0.5.dev0-py2.7-macosx-10.6-x86_64.egg/tvm/hybrid/parser.py", line 514, in parse_python
parser.parsed_body = parser.visit(root)
File "/Users/wayao/anaconda/lib/python2.7/ast.py", line 241, in visit
return visitor(node)
File "/Users/wayao/anaconda/lib/python2.7/site-packages/tvm-0.5.dev0-py2.7-macosx-10.6-x86_64.egg/tvm/hybrid/parser.py", line 157, in visit_Module
return self.visit(node.body[0])
File "/Users/wayao/anaconda/lib/python2.7/ast.py", line 241, in visit
return visitor(node)
File "/Users/wayao/anaconda/lib/python2.7/site-packages/tvm-0.5.dev0-py2.7-macosx-10.6-x86_64.egg/tvm/hybrid/parser.py", line 169, in visit_FunctionDef
res = visit_list_to_block(self.visit, node.body)
File "/Users/wayao/anaconda/lib/python2.7/site-packages/tvm-0.5.dev0-py2.7-macosx-10.6-x86_64.egg/tvm/hybrid/parser.py", line 37, in visit_list_to_block
lst = [visit(stmt) for stmt in lst if not util.is_docstring(stmt)]
File "/Users/wayao/anaconda/lib/python2.7/ast.py", line 241, in visit
return visitor(node)
File "/Users/wayao/anaconda/lib/python2.7/site-packages/tvm-0.5.dev0-py2.7-macosx-10.6-x86_64.egg/tvm/hybrid/parser.py", line 443, in visit_For
_body = visit_list_to_block(self.visit, node.body)
File "/Users/wayao/anaconda/lib/python2.7/site-packages/tvm-0.5.dev0-py2.7-macosx-10.6-x86_64.egg/tvm/hybrid/parser.py", line 37, in visit_list_to_block
lst = [visit(stmt) for stmt in lst if not util.is_docstring(stmt)]
File "/Users/wayao/anaconda/lib/python2.7/ast.py", line 241, in visit
return visitor(node)
File "/Users/wayao/anaconda/lib/python2.7/site-packages/tvm-0.5.dev0-py2.7-macosx-10.6-x86_64.egg/tvm/hybrid/parser.py", line 443, in visit_For
_body = visit_list_to_block(self.visit, node.body)
File "/Users/wayao/anaconda/lib/python2.7/site-packages/tvm-0.5.dev0-py2.7-macosx-10.6-x86_64.egg/tvm/hybrid/parser.py", line 37, in visit_list_to_block
lst = [visit(stmt) for stmt in lst if not util.is_docstring(stmt)]
File "/Users/wayao/anaconda/lib/python2.7/ast.py", line 241, in visit
return visitor(node)
File "/Users/wayao/anaconda/lib/python2.7/site-packages/tvm-0.5.dev0-py2.7-macosx-10.6-x86_64.egg/tvm/hybrid/parser.py", line 434, in visit_For
bodies.append(visit_list_to_block(self.visit, node.body))
File "/Users/wayao/anaconda/lib/python2.7/site-packages/tvm-0.5.dev0-py2.7-macosx-10.6-x86_64.egg/tvm/hybrid/parser.py", line 37, in visit_list_to_block
lst = [visit(stmt) for stmt in lst if not util.is_docstring(stmt)]
File "/Users/wayao/anaconda/lib/python2.7/ast.py", line 241, in visit
return visitor(node)
File "/Users/wayao/anaconda/lib/python2.7/site-packages/tvm-0.5.dev0-py2.7-macosx-10.6-x86_64.egg/tvm/hybrid/parser.py", line 337, in visit_If
if_body = visit_list_to_block(self.visit, node.body)
File "/Users/wayao/anaconda/lib/python2.7/site-packages/tvm-0.5.dev0-py2.7-macosx-10.6-x86_64.egg/tvm/hybrid/parser.py", line 37, in visit_list_to_block
lst = [visit(stmt) for stmt in lst if not util.is_docstring(stmt)]
File "/Users/wayao/anaconda/lib/python2.7/ast.py", line 241, in visit
return visitor(node)
File "/Users/wayao/anaconda/lib/python2.7/site-packages/tvm-0.5.dev0-py2.7-macosx-10.6-x86_64.egg/tvm/hybrid/parser.py", line 224, in visit_Assign
rhs = self.visit(node.value)
File "/Users/wayao/anaconda/lib/python2.7/ast.py", line 241, in visit
return visitor(node)
File "/Users/wayao/anaconda/lib/python2.7/site-packages/tvm-0.5.dev0-py2.7-macosx-10.6-x86_64.egg/tvm/hybrid/parser.py", line 386, in visit_BinOp
lhs = self.visit(node.left)
File "/Users/wayao/anaconda/lib/python2.7/ast.py", line 241, in visit
return visitor(node)
File "/Users/wayao/anaconda/lib/python2.7/site-packages/tvm-0.5.dev0-py2.7-macosx-10.6-x86_64.egg/tvm/hybrid/parser.py", line 386, in visit_BinOp
lhs = self.visit(node.left)
File "/Users/wayao/anaconda/lib/python2.7/ast.py", line 241, in visit
return visitor(node)
File "/Users/wayao/anaconda/lib/python2.7/site-packages/tvm-0.5.dev0-py2.7-macosx-10.6-x86_64.egg/tvm/hybrid/parser.py", line 386, in visit_BinOp
lhs = self.visit(node.left)
File "/Users/wayao/anaconda/lib/python2.7/ast.py", line 241, in visit
return visitor(node)
File "/Users/wayao/anaconda/lib/python2.7/site-packages/tvm-0.5.dev0-py2.7-macosx-10.6-x86_64.egg/tvm/hybrid/parser.py", line 298, in visit_Subscript
buf = buf[i]
File "/Users/wayao/anaconda/lib/python2.7/site-packages/tvm-0.5.dev0-py2.7-macosx-10.6-x86_64.egg/tvm/container.py", line 28, in __getitem__
.format(len(self), i))
IndexError: Array index out of range. Array size: 3, got index 3