@@ -432,7 +432,6 @@ TVM_STATIC_IR_FUNCTOR(IntSetEvaluator, vtable)
432
432
.set_dispatch<And>(Binary<And>)
433
433
.set_dispatch<Or>(Binary<Or>);
434
434
435
-
436
435
IntSet EvalSet (Expr e,
437
436
const std::unordered_map<const Variable*, IntSet>& dom_map) {
438
437
return IntSetEvaluator (dom_map).Eval (e);
@@ -444,17 +443,12 @@ IntSet EvalSet(Expr e,
444
443
for (auto kv : dom_map) {
445
444
dmap[kv.first ->var .as <Variable>()] = kv.second ;
446
445
}
447
- IntSetEvaluator m (dmap);
448
- return m.Eval (e);
446
+ return EvalSet (e, dmap);
449
447
}
450
448
451
449
IntSet EvalSet (Range r,
452
- const Map<IterVar, IntSet>& dom_map) {
453
- std::unordered_map<const Variable*, IntSet> dmap;
454
- for (auto kv : dom_map) {
455
- dmap[kv.first ->var .as <Variable>()] = kv.second ;
456
- }
457
- IntSetEvaluator m (dmap);
450
+ const std::unordered_map<const Variable*, IntSet>& dom_map) {
451
+ IntSetEvaluator m (dom_map);
458
452
IntSet min_set = m.Eval (r->min );
459
453
IntSet ext_set = m.Eval (r->extent ).cover_interval ();
460
454
const Interval& ei = ext_set.as <IntervalSet>()->i ;
@@ -463,13 +457,21 @@ IntSet EvalSet(Range r,
463
457
return Combine<Add>(min_set, ext_set);
464
458
}
465
459
460
+ IntSet EvalSet (Range r,
461
+ const Map<IterVar, IntSet>& dom_map) {
462
+ std::unordered_map<const Variable*, IntSet> dmap;
463
+ for (auto kv : dom_map) {
464
+ dmap[kv.first ->var .as <Variable>()] = kv.second ;
465
+ }
466
+ return EvalSet (r, dmap);
467
+ }
468
+
466
469
TVM_STATIC_IR_FUNCTOR (IRPrinter, vtable)
467
470
.set_dispatch<IntervalSet>([](const IntervalSet *op, IRPrinter *p) {
468
471
p->stream << " interval-set["
469
472
<< " [" << op->i .min << " , "
470
473
<< op->i .max << ' ]' ;
471
474
});
472
475
473
-
474
476
} // namespace arith
475
477
} // namespace tvm
0 commit comments