talha-ahsan opened a new issue, #17387:
URL: https://github.com/apache/tvm/issues/17387

   ### Steps to Reproduce
   
   
   ```python
   import tvm
   from tvm import tir
   from tvm.tir.analysis.analysis import verify_well_formed, verify_memory
   
   from tvm.script import tir as T
   
   @T.prim_func
   def tvmgen_default_fused_nn_conv2d_8(p0: T.Buffer((1, 64, 35, 35), 
"float32"), p1: T.Buffer((96, 64, 3, 3), "float32"), output_unpack: 
T.Buffer((1, 96, 35, 35), "float32")):
       T.func_attr({"from_legacy_te_schedule": T.bool(True), "hash": 
"bdd66943e9f8a12c", "target": T.target({"host": {"keys": ["cpu"], "kind": 
"llvm", "tag": ""}, "keys": ["cpu"], "kind": "llvm", "tag": ""}), 
"tir.noalias": T.bool(True)})
       data_vec = T.allocate([78400], "float32", "global")
       data_pad = T.allocate([87616], "float32", "global")
       data_vec_1 = T.Buffer((78400,), data=data_vec)
       for bs_c_fused_h_fused in T.parallel(560):
           for w, vc in T.grid(35, 4):
               p0_1 = T.Buffer((78400,), data=p0.data)
               data_vec_1[bs_c_fused_h_fused * 140 + w * 4 + vc] = 
p0_1[bs_c_fused_h_fused // 35 * 4900 + vc * 1225 + bs_c_fused_h_fused % 35 * 35 
+ w]
       data_pad_1 = T.Buffer((87616,), data=data_pad)
       for i0_i1_fused_i2_fused in T.parallel(592):
           for i3 in range(37):
               cse_var_2: T.int32 = i0_i1_fused_i2_fused % 37
               cse_var_1: T.int32 = i3 * 4
               data_pad_1[i0_i1_fused_i2_fused * 148 + 
cse_var_1:i0_i1_fused_i2_fused * 148 + cse_var_1 + 4] = T.if_then_else(1 <= 
cse_var_2 and cse_var_2 < 36 and 1 <= i3 and i3 < 36, 
data_vec_1[i0_i1_fused_i2_fused // 37 * 4900 + cse_var_2 * 140 + cse_var_1 - 
144:i0_i1_fused_i2_fused // 37 * 4900 + cse_var_2 * 140 + cse_var_1 - 144 + 4], 
T.Broadcast(T.float32(0), 4))
       data_vec_2 = T.Buffer((55296,), data=data_vec)
       for occ_k_h_fused in T.parallel(72):
           for icc, k_w, icb in T.grid(16, 3, 4):
               cse_var_4: T.int32 = occ_k_h_fused % 3
               cse_var_3: T.int32 = occ_k_h_fused // 3 * 2304
               p1_1 = T.Buffer((55296,), data=p1.data)
               data_vec_2[cse_var_3 + icc * 144 + cse_var_4 * 48 + k_w * 16 + 
icb * 4:cse_var_3 + icc * 144 + cse_var_4 * 48 + k_w * 16 + icb * 4 + 4] = 
p1_1[cse_var_3 + icc * 36 + icb * 9 + cse_var_4 * 3 + k_w:cse_var_3 + icc * 36 
+ icb * 9 + cse_var_4 * 3 + k_w + 2304:576]
       for n_c_outer_fused_h_fused in T.parallel(840):
           conv2d_NCHWc = T.allocate([35], "float32x4", "global")
           conv2d_NCHWc_global = T.allocate([7], "float32x4", "global")
           conv2d_NCHWc_1 = T.Buffer((35,), "float32x4", data=conv2d_NCHWc)
           for ow_outer in range(5):
               conv2d_NCHWc_global_1 = T.Buffer((7,), "float32x4", 
data=conv2d_NCHWc_global)
               conv2d_NCHWc_global_1[0] = T.Broadcast(T.float32(0), 4)
               conv2d_NCHWc_global_1[1] = T.Broadcast(T.float32(0), 4)
               conv2d_NCHWc_global_1[2] = T.Broadcast(T.float32(0), 4)
               conv2d_NCHWc_global_1[3] = T.Broadcast(T.float32(0), 4)
               conv2d_NCHWc_global_1[4] = T.Broadcast(T.float32(0), 4)
               conv2d_NCHWc_global_1[5] = T.Broadcast(T.float32(0), 4)
               conv2d_NCHWc_global_1[6] = T.Broadcast(T.float32(0), 4)
               for ic_outer, kh, kw, ic_inner in T.grid(16, 3, 3, 4):
                   cse_var_6: T.int32 = n_c_outer_fused_h_fused // 35 * 2304 + 
ic_outer * 144 + kh * 48 + kw * 16 + ic_inner * 4
                   cse_var_5: T.int32 = ic_outer * 5476 + kh * 148 + 
n_c_outer_fused_h_fused % 35 * 148 + ow_outer * 28 + kw * 4 + ic_inner
                   conv2d_NCHWc_global_1[0] = conv2d_NCHWc_global_1[0] + 
T.Broadcast(data_pad_1[cse_var_5], 4) * data_vec_2[cse_var_6:cse_var_6 + 4]
                   conv2d_NCHWc_global_1[1] = conv2d_NCHWc_global_1[1] + 
T.Broadcast(data_pad_1[cse_var_5 + 4], 4) * data_vec_2[cse_var_6:cse_var_6 + 4]
                   conv2d_NCHWc_global_1[2] = conv2d_NCHWc_global_1[2] + 
T.Broadcast(data_pad_1[cse_var_5 + 8], 4) * data_vec_2[cse_var_6:cse_var_6 + 4]
                   conv2d_NCHWc_global_1[3] = conv2d_NCHWc_global_1[3] + 
T.Broadcast(data_pad_1[cse_var_5 + 12], 4) * data_vec_2[cse_var_6:cse_var_6 + 4]
                   conv2d_NCHWc_global_1[4] = conv2d_NCHWc_global_1[4] + 
T.Broadcast(data_pad_1[cse_var_5 + 16], 4) * data_vec_2[cse_var_6:cse_var_6 + 4]
                   conv2d_NCHWc_global_1[5] = conv2d_NCHWc_global_1[5] + 
T.Broadcast(data_pad_1[cse_var_5 + 20], 4) * data_vec_2[cse_var_6:cse_var_6 + 4]
                   conv2d_NCHWc_global_1[6] = conv2d_NCHWc_global_1[6] + 
T.Broadcast(data_pad_1[cse_var_5 + 24], 4) * data_vec_2[cse_var_6:cse_var_6 + 4]
               for ow_inner in range(7):
                   conv2d_NCHWc_1[ow_outer * 7 + ow_inner] = 
conv2d_NCHWc_global_1[ow_inner]
           for w_outer, w_inner in T.grid(5, 7):
               cse_var_7: T.int32 = w_outer * 7 #<- it's defined here? 
               output_unpack_1 = T.Buffer((117600,), data=output_unpack.data)
               b4f = T.float32()
               d2e = T.int32()
               cb2 = T.int32()
               output_unpack_1[T.Let(T.max(T.Broadcast(-2003919016, 4), 
T.Let(T.Broadcast(1701956818, 4) - (T.Broadcast(-374516067, 4) - 
T.min(T.Broadcast(-2023512221, 4), T.Broadcast(-795290955, 4)) - 
T.Broadcast(-408744533, 4)), where={cb2: T.truncmod(cse_var_7, T.Div(cse_var_7, 
cse_var_7))})) % (T.Cast("int32x4", T.Broadcast(T.uint32(1465149854), 4)) // 
T.truncmod(T.Broadcast(-1549046547, 4), T.Broadcast(T.Cast("int32", 
T.acosh(T.Cast("float32", T.Shuffle([T.Cast("int32x4", 
T.Broadcast(T.uint32(687467356), 4) * T.Broadcast(T.uint32(1937108905), 4))], 
[3])))), 4))), where={b4f: 
T.min(T.Let(T.erf(T.min(T.float32(0.80712765069671755) - 
T.max(T.float32(0.74583677246725477), T.float32(0.65745684962173445)), 
T.Cast("float32", T.Cast("float32", d2e) + T.float32(0.14202131246354621)) * 
T.float32(0.3805610012656766))), where={d2e: cse_var_7 % cse_var_7 // 
(T.max(cse_var_7, cse_var_7) - T.truncmod(cse_var_7, cse_var_7))}), 
T.float32(0.75022262892839819))})] = conv2d_NCHWc_1[cse_var_7 + w_in
 ner]
   
   func = tvmgen_default_fused_nn_conv2d_8
   mod = tvm.ir.IRModule({'main': func})
   if not verify_well_formed(mod) and verify_memory(func):
       print("Validation failed")
   else: 
       with tvm.transform.PassContext(opt_level=0):
           nopt_mod = tvm.build(mod)
   ```
   
   ### Expected Behavior
   
   At the very least, `cse_var_7` should be defined, so I shouldn't get error 
messages about it not being defined. 
   
   ### Observed Behavior
   
   
   (Note, I've updated file paths in this log to simplify paths to TVM and 
where I ran the script above)
   
   ```
   [21:04:21] <path_to_tvm>tvm/src/script/printer/tir/expr.cc:70: Warning: 
Didn't find variable definition for: cse_var_7
   [21:04:21] <path_to_tvm>tvm/src/script/printer/ir/../utils.h:46: Warning: 
TVMScript printer falls back to the legacy ReprPrinter with the error:
   [21:04:21] <path_to_tvm>tvm/src/script/printer/tir/expr.cc:76: IndexError: 
Variable is not defined in the environment: cse_var_7
   Stack trace:
     0: _ZN3tvm7runtime6detail
     1: tvm::script::printer::PrintVar(tvm::tir::Var const&, tvm::ObjectPath 
const&, tvm::script::printer::IRDocsifier const&)
     2: 
tvm::runtime::PackedFuncObj::Extractor<tvm::runtime::PackedFuncSubObj<tvm::runtime::TypedPackedFunc<tvm::script::printer::Doc
 (tvm::tir::Var, tvm::ObjectPath, 
tvm::script::printer::IRDocsifier)>::AssignTypedLambda<tvm::script::printer::$_0>(tvm::script::printer::$_0)::{lambda(tvm::runtime::TVMArgs
 const&, tvm::runtime::TVMRetValue*)#1}> >::Call(tvm::runtime::PackedFuncObj 
const*, tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*)
     3: tvm::runtime::TVMRetValue 
tvm::runtime::PackedFunc::operator()<tvm::runtime::ObjectRef&, 
tvm::ObjectPath&, tvm::script::printer::IRDocsifier&>(tvm::runtime::ObjectRef&, 
tvm::ObjectPath&, tvm::script::printer::IRDocsifier&) const
     4: tvm::script::printer::Doc 
tvm::script::printer::IRDocsifierFunctor<tvm::script::printer::Doc, 
tvm::ObjectPath, 
tvm::script::printer::IRDocsifier>::operator()<tvm::runtime::ObjectRef>(tvm::runtime::String
 const&, tvm::runtime::ObjectRef, tvm::ObjectPath, 
tvm::script::printer::IRDocsifier) const
     5: tvm::script::printer::ExprDoc 
tvm::script::printer::IRDocsifierNode::AsDoc<tvm::script::printer::ExprDoc>(tvm::runtime::ObjectRef
 const&, tvm::ObjectPath const&) const
     6: 
tvm::runtime::PackedFuncObj::Extractor<tvm::runtime::PackedFuncSubObj<tvm::runtime::TypedPackedFunc<tvm::script::printer::Doc
 (tvm::tir::FloorMod, tvm::ObjectPath, 
tvm::script::printer::IRDocsifier)>::AssignTypedLambda<tvm::script::printer::$_21>(tvm::script::printer::$_21)::{lambda(tvm::runtime::TVMArgs
 const&, tvm::runtime::TVMRetValue*)#1}> >::Call(tvm::runtime::PackedFuncObj 
const*, tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*)
     7: tvm::runtime::TVMRetValue 
tvm::runtime::PackedFunc::operator()<tvm::runtime::ObjectRef&, 
tvm::ObjectPath&, tvm::script::printer::IRDocsifier&>(tvm::runtime::ObjectRef&, 
tvm::ObjectPath&, tvm::script::printer::IRDocsifier&) const
     8: tvm::script::printer::Doc 
tvm::script::printer::IRDocsifierFunctor<tvm::script::printer::Doc, 
tvm::ObjectPath, 
tvm::script::printer::IRDocsifier>::operator()<tvm::runtime::ObjectRef>(tvm::runtime::String
 const&, tvm::runtime::ObjectRef, tvm::ObjectPath, 
tvm::script::printer::IRDocsifier) const
     9: tvm::script::printer::ExprDoc 
tvm::script::printer::IRDocsifierNode::AsDoc<tvm::script::printer::ExprDoc>(tvm::runtime::ObjectRef
 const&, tvm::ObjectPath const&) const
     10: 
tvm::runtime::PackedFuncObj::Extractor<tvm::runtime::PackedFuncSubObj<tvm::runtime::TypedPackedFunc<tvm::script::printer::Doc
 (tvm::tir::FloorDiv, tvm::ObjectPath, 
tvm::script::printer::IRDocsifier)>::AssignTypedLambda<tvm::script::printer::$_20>(tvm::script::printer::$_20)::{lambda(tvm::runtime::TVMArgs
 const&, tvm::runtime::TVMRetValue*)#1}> >::Call(tvm::runtime::PackedFuncObj 
const*, tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*)
     11: tvm::runtime::TVMRetValue 
tvm::runtime::PackedFunc::operator()<tvm::runtime::ObjectRef&, 
tvm::ObjectPath&, tvm::script::printer::IRDocsifier&>(tvm::runtime::ObjectRef&, 
tvm::ObjectPath&, tvm::script::printer::IRDocsifier&) const
     12: tvm::script::printer::Doc 
tvm::script::printer::IRDocsifierFunctor<tvm::script::printer::Doc, 
tvm::ObjectPath, 
tvm::script::printer::IRDocsifier>::operator()<tvm::runtime::ObjectRef>(tvm::runtime::String
 const&, tvm::runtime::ObjectRef, tvm::ObjectPath, 
tvm::script::printer::IRDocsifier) const
     13: tvm::script::printer::ExprDoc 
tvm::script::printer::IRDocsifierNode::AsDoc<tvm::script::printer::ExprDoc>(tvm::runtime::ObjectRef
 const&, tvm::ObjectPath const&) const
     14: 
tvm::runtime::PackedFuncObj::Extractor<tvm::runtime::PackedFuncSubObj<tvm::runtime::TypedPackedFunc<tvm::script::printer::Doc
 (tvm::Range, tvm::ObjectPath, 
tvm::script::printer::IRDocsifier)>::AssignTypedLambda<tvm::script::printer::$_13>(tvm::script::printer::$_13)::{lambda(tvm::runtime::TVMArgs
 const&, tvm::runtime::TVMRetValue*)#1}> >::Call(tvm::runtime::PackedFuncObj 
const*, tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*)
     15: tvm::runtime::TVMRetValue 
tvm::runtime::PackedFunc::operator()<tvm::runtime::ObjectRef&, 
tvm::ObjectPath&, tvm::script::printer::IRDocsifier&>(tvm::runtime::ObjectRef&, 
tvm::ObjectPath&, tvm::script::printer::IRDocsifier&) const
     16: tvm::script::printer::Doc 
tvm::script::printer::IRDocsifierFunctor<tvm::script::printer::Doc, 
tvm::ObjectPath, 
tvm::script::printer::IRDocsifier>::operator()<tvm::runtime::ObjectRef>(tvm::runtime::String
 const&, tvm::runtime::ObjectRef, tvm::ObjectPath, 
tvm::script::printer::IRDocsifier) const
     17: tvm::script::printer::Doc 
tvm::script::printer::IRDocsifierNode::AsDoc<tvm::script::printer::Doc>(tvm::runtime::ObjectRef
 const&, tvm::ObjectPath const&) const
     18: tvm::script::printer::Docsify[abi:cxx11](tvm::runtime::ObjectRef 
const&, tvm::script::printer::IRDocsifier const&, tvm::script::printer::Frame 
const&, tvm::PrinterConfig const&)
     19: tvm::script::printer::ReprPrintIR[abi:cxx11](tvm::runtime::ObjectRef 
const&, tvm::PrinterConfig const&)
     20: tvm::NodeFunctor<std::__cxx11::basic_string<char, 
std::char_traits<char>, std::allocator<char> > (tvm::runtime::ObjectRef const&, 
tvm::PrinterConfig const&)>::operator()(tvm::runtime::ObjectRef const&, 
tvm::PrinterConfig const&) const
     21: tvm::TVMScriptPrinter::Script[abi:cxx11](tvm::runtime::ObjectRef 
const&, tvm::runtime::Optional<tvm::PrinterConfig> const&)
     22: 
tvm::script::printer::RedirectedReprPrinterMethod(tvm::runtime::ObjectRef 
const&, tvm::ReprPrinter*)
     23: tvm::runtime::operator<<(std::ostream&, tvm::runtime::ObjectRef const&)
     24: tvm::arith::TransitiveComparisonAnalyzer::Impl::Bind(tvm::tir::Var 
const&, tvm::Range const&, bool)
     25: tvm::arith::TransitiveComparisonAnalyzer::Impl::Bind(tvm::tir::Var 
const&, tvm::PrimExpr const&, bool)
     26: tvm::arith::Analyzer::Bind(tvm::tir::Var const&, tvm::PrimExpr const&, 
bool)
     27: tvm::arith::RewriteSimplifier::Impl::VisitExpr_(tvm::tir::LetNode 
const*)
     28: _ZThn16_N3tvm5arith17RewriteSimplifier4Impl10VisitExp
     29: _ZZN3tvm3tir11ExprFunctorIFNS_8PrimExprERKS2_EE10I
     30: tvm::NodeFunctor<tvm::PrimExpr (tvm::runtime::ObjectRef const&, 
tvm::tir::ExprFunctor<tvm::PrimExpr (tvm::PrimExpr 
const&)>*)>::operator()(tvm::runtime::ObjectRef const&, 
tvm::tir::ExprFunctor<tvm::PrimExpr (tvm::PrimExpr const&)>*) const
     31: tvm::tir::ExprFunctor<tvm::PrimExpr (tvm::PrimExpr 
const&)>::VisitExpr(tvm::PrimExpr const&)
     32: _ZThn16_N3tvm5arith17RewriteSimplifier4Impl9VisitExpr
     33: tvm::arith::RewriteSimplifier::Impl::VisitExpr_(tvm::tir::MinNode 
const*)
     34: _ZThn16_N3tvm5arith17RewriteSimplifier4Impl10VisitExp
     35: _ZZN3tvm3tir11ExprFunctorIFNS_8PrimExprERKS2_EE10Init
     36: tvm::NodeFunctor<tvm::PrimExpr (tvm::runtime::ObjectRef const&, 
tvm::tir::ExprFunctor<tvm::PrimExpr (tvm::PrimExpr 
const&)>*)>::operator()(tvm::runtime::ObjectRef const&, 
tvm::tir::ExprFunctor<tvm::PrimExpr (tvm::PrimExpr const&)>*) const
     37: tvm::tir::ExprFunctor<tvm::PrimExpr (tvm::PrimExpr 
const&)>::VisitExpr(tvm::PrimExpr const&)
     38: _ZThn16_N3tvm5arith17RewriteSimplifier4Impl9VisitExpr
     39: tvm::arith::RewriteSimplifier::operator()(tvm::PrimExpr const&)
     40: tvm::arith::Analyzer::Bind(tvm::tir::Var const&, tvm::PrimExpr const&, 
bool)
     41: non-virtual thunk to 
tvm::arith::IRVisitorWithAnalyzer::VisitExpr_(tvm::tir::LetNode const*)
     42: tvm::tir::StmtVisitor::VisitStmt_(tvm::tir::BufferStoreNode const*)
     43: tvm::arith::IRVisitorWithAnalyzer::VisitStmt_(tvm::tir::ForNode const*)
     44: tvm::arith::IRVisitorWithAnalyzer::VisitStmt_(tvm::tir::ForNode const*)
     45: tvm::tir::StmtVisitor::VisitStmt_(tvm::tir::SeqStmtNode const*)
     46: tvm::tir::StmtVisitor::VisitStmt_(tvm::tir::AllocateNode const*)
     47: tvm::tir::StmtVisitor::VisitStmt_(tvm::tir::AllocateNode const*)
     48: tvm::arith::IRVisitorWithAnalyzer::VisitStmt_(tvm::tir::ForNode const*)
     49: tvm::tir::StmtVisitor::VisitStmt_(tvm::tir::SeqStmtNode const*)
     50: tvm::tir::StmtVisitor::VisitStmt_(tvm::tir::AllocateNode const*)
     51: tvm::tir::StmtVisitor::VisitStmt_(tvm::tir::AllocateNode const*)
     52: tvm::tir::TextureFlatten(tvm::tir::PrimFunc)
     53: 
tvm::runtime::PackedFuncObj::Extractor<tvm::runtime::PackedFuncSubObj<tvm::runtime::TypedPackedFunc<tvm::tir::PrimFunc
 (tvm::tir::PrimFunc, tvm::IRModule, 
tvm::transform::PassContext)>::AssignTypedLambda<tvm::tir::transform::TextureFlatten()::$_0>(tvm::tir::transform::TextureFlatten()::$_0)::{lambda(tvm::runtime::TVMArgs
 const&, tvm::runtime::TVMRetValue*)#1}> >::Call(tvm::runtime::PackedFuncObj 
const*, tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*)
     54: tvm::tir::transform::PrimFuncPassNode::operator()(tvm::IRModule, 
tvm::transform::PassContext const&) const
     55: tvm::transform::Pass::operator()(tvm::IRModule, 
tvm::transform::PassContext const&) const
     56: tvm::transform::SequentialNode::operator()(tvm::IRModule, 
tvm::transform::PassContext const&) const
     57: tvm::transform::Pass::operator()(tvm::IRModule, 
tvm::transform::PassContext const&) const
     58: tvm::transform::Pass::operator()(tvm::IRModule) const
     59: tvm::LowerWithPassList(tvm::IRModule, 
tvm::runtime::Array<tvm::transform::Pass, void>)
     60: tvm::LowerModule(tvm::IRModule, bool)
     61: 
tvm::runtime::PackedFuncObj::Extractor<tvm::runtime::PackedFuncSubObj<tvm::runtime::TypedPackedFunc<tvm::IRModule
 (tvm::IRModule, bool)>::AssignTypedLambda<tvm::$_2>(tvm::$_2, 
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> 
>)::{lambda(tvm::runtime::TVMArgs const&, tvm::runtime::TVMRetValue*)#1}> 
>::Call(tvm::runtime::PackedFuncObj const*, tvm::runtime::TVMArgs, 
tvm::runtime::TVMRetValue*)
   
   
   Traceback (most recent call last):
     File "<path_to_bug_reproduction>/TVMBugReport1/reprod.py", line 70, in 
<module>
       nopt_mod = tvm.build(mod)
     File "<path_to_tvm>tvm/python/tvm/driver/build_module.py", line 239, in 
build
       input_mod = lower(inputs)
     File "<path_to_tvm>tvm/python/tvm/driver/build_module.py", line 130, in 
lower
       return ffi.lower_module(inp, simple_mode)
     File "<path_to_tvm>tvm/python/tvm/_ffi/_ctypes/packed_func.py", line 239, 
in __call__
       raise_last_ffi_error()
     File "<path_to_tvm>tvm/python/tvm/_ffi/base.py", line 481, in 
raise_last_ffi_error
       raise py_err
   IndexError: Traceback (most recent call last):
     38: 
tvm::runtime::PackedFuncObj::Extractor<tvm::runtime::PackedFuncSubObj<tvm::runtime::TypedPackedFunc<tvm::IRModule
 (tvm::IRModule, bool)>::AssignTypedLambda<tvm::$_2>(tvm::$_2, 
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> 
>)::{lambda(tvm::runtime::TVMArgs const&, tvm::runtime::TVMRetValue*)#1}> 
>::Call(tvm::runtime::PackedFuncObj const*, tvm::runtime::TVMArgs, 
tvm::runtime::TVMRetValue*)
     37: tvm::LowerModule(tvm::IRModule, bool)
     36: tvm::LowerWithPassList(tvm::IRModule, 
tvm::runtime::Array<tvm::transform::Pass, void>)
     35: tvm::transform::Pass::operator()(tvm::IRModule) const
     34: tvm::transform::Pass::operator()(tvm::IRModule, 
tvm::transform::PassContext const&) const
     33: tvm::transform::SequentialNode::operator()(tvm::IRModule, 
tvm::transform::PassContext const&) const
     32: tvm::transform::Pass::operator()(tvm::IRModule, 
tvm::transform::PassContext const&) const
     31: tvm::tir::transform::PrimFuncPassNode::operator()(tvm::IRModule, 
tvm::transform::PassContext const&) const
     30: 
tvm::runtime::PackedFuncObj::Extractor<tvm::runtime::PackedFuncSubObj<tvm::runtime::TypedPackedFunc<tvm::tir::PrimFunc
 (tvm::tir::PrimFunc, tvm::IRModule, 
tvm::transform::PassContext)>::AssignTypedLambda<tvm::tir::transform::TextureFlatten()::$_0>(tvm::tir::transform::TextureFlatten()::$_0)::{lambda(tvm::runtime::TVMArgs
 const&, tvm::runtime::TVMRetValue*)#1}> >::Call(tvm::runtime::PackedFuncObj 
const*, tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*)
     29: tvm::tir::TextureFlatten(tvm::tir::PrimFunc)
     28: tvm::tir::StmtVisitor::VisitStmt_(tvm::tir::AllocateNode const*)
     27: tvm::tir::StmtVisitor::VisitStmt_(tvm::tir::AllocateNode const*)
     26: tvm::tir::StmtVisitor::VisitStmt_(tvm::tir::SeqStmtNode const*)
     25: tvm::arith::IRVisitorWithAnalyzer::VisitStmt_(tvm::tir::ForNode const*)
     24: tvm::tir::StmtVisitor::VisitStmt_(tvm::tir::AllocateNode const*)
     23: tvm::tir::StmtVisitor::VisitStmt_(tvm::tir::AllocateNode const*)
     22: tvm::tir::StmtVisitor::VisitStmt_(tvm::tir::SeqStmtNode const*)
     21: tvm::arith::IRVisitorWithAnalyzer::VisitStmt_(tvm::tir::ForNode const*)
     20: tvm::arith::IRVisitorWithAnalyzer::VisitStmt_(tvm::tir::ForNode const*)
     19: tvm::tir::StmtVisitor::VisitStmt_(tvm::tir::BufferStoreNode const*)
     18: non-virtual thunk to 
tvm::arith::IRVisitorWithAnalyzer::VisitExpr_(tvm::tir::LetNode const*)
     17: tvm::arith::Analyzer::Bind(tvm::tir::Var const&, tvm::PrimExpr const&, 
bool)
     16: tvm::arith::RewriteSimplifier::operator()(tvm::PrimExpr const&)
     15: _ZThn16_N3tvm5arith17RewriteSimplifier4Impl9VisitExpr
     14: tvm::tir::ExprFunctor<tvm::PrimExpr (tvm::PrimExpr 
const&)>::VisitExpr(tvm::PrimExpr const&)
     13: tvm::NodeFunctor<tvm::PrimExpr (tvm::runtime::ObjectRef const&, 
tvm::tir::ExprFunctor<tvm::PrimExpr (tvm::PrimExpr 
const&)>*)>::operator()(tvm::runtime::ObjectRef const&, 
tvm::tir::ExprFunctor<tvm::PrimExpr (tvm::PrimExpr const&)>*) const
     12: _ZZN3tvm3tir11ExprFunctorIFNS_8PrimExprERKS2_EE10Init
     11: _ZThn16_N3tvm5arith17RewriteSimplifier4Impl10VisitExp
     10: tvm::arith::RewriteSimplifier::Impl::VisitExpr_(tvm::tir::MinNode 
const*)
     9: _ZThn16_N3tvm5arith17RewriteSimplifier4Impl9VisitExpr
     8: tvm::tir::ExprFunctor<tvm::PrimExpr (tvm::PrimExpr 
const&)>::VisitExpr(tvm::PrimExpr const&)
     7: tvm::NodeFunctor<tvm::PrimExpr (tvm::runtime::ObjectRef const&, 
tvm::tir::ExprFunctor<tvm::PrimExpr (tvm::PrimExpr 
const&)>*)>::operator()(tvm::runtime::ObjectRef const&, 
tvm::tir::ExprFunctor<tvm::PrimExpr (tvm::PrimExpr const&)>*) const
     6: _ZZN3tvm3tir11ExprFunctorIFNS_8PrimExprERKS2_EE10I
     5: _ZThn16_N3tvm5arith17RewriteSimplifier4Impl10VisitExp
     4: tvm::arith::RewriteSimplifier::Impl::VisitExpr_(tvm::tir::LetNode 
const*)
     3: tvm::arith::Analyzer::Bind(tvm::tir::Var const&, tvm::PrimExpr const&, 
bool)
     2: tvm::arith::TransitiveComparisonAnalyzer::Impl::Bind(tvm::tir::Var 
const&, tvm::PrimExpr const&, bool)
     1: tvm::arith::TransitiveComparisonAnalyzer::Impl::Bind(tvm::tir::Var 
const&, tvm::Range const&, bool)
     0: _ZN3tvm7runtime6detail
     File "<path_to_tvm>tvm/src/script/printer/tir/expr.cc", line 76
   IndexError: Variable is not defined in the environment: 
cse_var_7range(min=floordiv(floormod(cse_var_7, cse_var_7), (cse_var_7 - 
(cse_var_7 % cse_var_7))), ext=1)Range(0x55c18f0b6240)
   ```
   
   ### Additoinal notes
   
   Printing the IR before and after each pass seems to indicate that the 
tir.TextureFlatten pass is the source of the exception. The before pass IR is 
printed, but no after pass IR is printed. 
   
   ### Triage
   
   * needs-triage
   * tir


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to