Interval 91 src/AddImageChecks.cpp Scope<Interval> empty_scope; Interval 201 src/AddImageChecks.cpp query_box.push_back(Interval(min, max)); Interval 33 src/AllocationBoundsInference.cpp Scope<Interval> empty_scope; Interval 42 src/AllocationBoundsInference.cpp required[i] = Interval(Variable::make(Int(32), prefix + ".min"), Interval 18 src/AllocationBoundsInference.h const std::map<std::pair<std::string, int>, Interval> &func_bounds); Interval 81 src/Bounds.cpp Interval interval; Interval 82 src/Bounds.cpp Scope<Interval> scope; Interval 85 src/Bounds.cpp Bounds(const Scope<Interval> *s, const FuncValueBounds &fb) : Interval 113 src/Bounds.cpp interval = Interval(t.min(), t.max()); Interval 115 src/Bounds.cpp interval = Interval::everything(); Interval 122 src/Bounds.cpp interval = Interval::single_point(op); Interval 126 src/Bounds.cpp interval = Interval::single_point(op); Interval 130 src/Bounds.cpp interval = Interval::single_point(op); Interval 136 src/Bounds.cpp Interval a = interval; Interval 139 src/Bounds.cpp interval = Interval::single_point(op); Interval 147 src/Bounds.cpp interval = Interval::single_point(Cast::make(to, a.min)); Interval 185 src/Bounds.cpp a = Interval(lower_bound, upper_bound); Interval 212 src/Bounds.cpp interval = Interval::single_point(op); Interval 218 src/Bounds.cpp Interval a = interval; Interval 220 src/Bounds.cpp Interval b = interval; Interval 223 src/Bounds.cpp interval = Interval::single_point(op); Interval 225 src/Bounds.cpp interval = Interval::single_point(a.min + b.min); Interval 227 src/Bounds.cpp interval = Interval::everything(); Interval 257 src/Bounds.cpp Interval a = interval; Interval 259 src/Bounds.cpp Interval b = interval; Interval 262 src/Bounds.cpp interval = Interval::single_point(op); Interval 264 src/Bounds.cpp interval = Interval::single_point(a.min - b.min); Interval 266 src/Bounds.cpp interval = Interval::everything(); Interval 304 src/Bounds.cpp Interval a = interval; Interval 307 src/Bounds.cpp Interval b = interval; Interval 315 src/Bounds.cpp interval = Interval::single_point(op); Interval 317 src/Bounds.cpp interval = Interval::single_point(a.min * b.min); Interval 324 src/Bounds.cpp interval = Interval(e1, e2); Interval 326 src/Bounds.cpp interval = Interval(e2, e1); Interval 330 src/Bounds.cpp interval = Interval(select(cmp, e1, e2), select(cmp, e2, e1)); Interval 332 src/Bounds.cpp interval = Interval::everything(); Interval 335 src/Bounds.cpp interval = Interval::nothing(); Interval 341 src/Bounds.cpp interval = Interval::everything(); Interval 363 src/Bounds.cpp Interval a = interval; Interval 366 src/Bounds.cpp Interval b = interval; Interval 369 src/Bounds.cpp interval = Interval::everything(); Interval 371 src/Bounds.cpp interval = Interval::single_point(op); Interval 376 src/Bounds.cpp interval = Interval(e1, e2); Interval 378 src/Bounds.cpp interval = Interval(e2, e1); Interval 384 src/Bounds.cpp interval = Interval(select(cmp, e1, e2), select(cmp, e2, e1)); Interval 386 src/Bounds.cpp interval = Interval::everything(); Interval 393 src/Bounds.cpp interval = Interval::everything(); Interval 397 src/Bounds.cpp interval = Interval::nothing(); Interval 404 src/Bounds.cpp interval = Interval::everything(); Interval 410 src/Bounds.cpp Interval a = interval; Interval 416 src/Bounds.cpp Interval b = interval; Interval 419 src/Bounds.cpp interval = Interval::single_point(op); Interval 426 src/Bounds.cpp interval = Interval::single_point(a.min % b.min); Interval 431 src/Bounds.cpp interval = Interval(make_zero(t), b.max - make_one(t)); Interval 437 src/Bounds.cpp interval = Interval(make_zero(t), Max::make(abs(b.min), abs(b.max)) - make_one(t)); Interval 442 src/Bounds.cpp interval = Interval(make_zero(t), Max::make(abs(b.min), abs(b.max))); Interval 449 src/Bounds.cpp Interval a = interval; Interval 452 src/Bounds.cpp Interval b = interval; Interval 455 src/Bounds.cpp interval = Interval::single_point(op); Interval 457 src/Bounds.cpp interval = Interval(Interval::make_min(a.min, b.min), Interval 458 src/Bounds.cpp Interval::make_min(a.max, b.max)); Interval 465 src/Bounds.cpp Interval a = interval; Interval 468 src/Bounds.cpp Interval b = interval; Interval 471 src/Bounds.cpp interval = Interval::single_point(op); Interval 473 src/Bounds.cpp interval = Interval(Interval::make_max(a.min, b.min), Interval 474 src/Bounds.cpp Interval::make_max(a.max, b.max)); Interval 519 src/Bounds.cpp Interval a = interval; Interval 525 src/Bounds.cpp Interval b = interval; Interval 536 src/Bounds.cpp interval.min = Interval::make_min(a.min, b.min); Interval 544 src/Bounds.cpp interval.max = Interval::make_max(a.max, b.max); Interval 555 src/Bounds.cpp interval = Interval::single_point(load_min); Interval 567 src/Bounds.cpp scope.push(var_name, Interval(make_const(var.type(), 0), Interval 597 src/Bounds.cpp interval = Interval::everything(); Interval 606 src/Bounds.cpp interval = Interval::single_point(call); Interval 608 src/Bounds.cpp Interval a = interval; Interval 612 src/Bounds.cpp interval = Interval::single_point(Call::make(t, Call::abs, {a.max}, Call::PureIntrinsic)); Interval 622 src/Bounds.cpp interval.max = Interval::pos_inf; Interval 654 src/Bounds.cpp interval = Interval( Interval 670 src/Bounds.cpp interval = Interval(Call::make(Int(32), Call::buffer_get_min, op->args, Call::Extern), Interval 685 src/Bounds.cpp Interval val = interval; Interval 690 src/Bounds.cpp Interval var; Interval 738 src/Bounds.cpp Interval result = Interval::nothing(); Interval 783 src/Bounds.cpp Interval bounds_of_expr_in_scope(Expr expr, const Scope<Interval> &scope, const FuncValueBounds &fb) { Interval 841 src/Bounds.cpp a[i].min = select(a.used && b.used, Interval::make_min(a[i].min, b[i].min), Interval 846 src/Bounds.cpp a[i].min = select(a.used, Interval::make_min(a[i].min, b[i].min), b[i].min); Interval 848 src/Bounds.cpp a[i].min = select(b.used, Interval::make_min(a[i].min, b[i].min), a[i].min); Interval 850 src/Bounds.cpp a[i].min = Interval::make_min(a[i].min, b[i].min); Interval 854 src/Bounds.cpp a[i].min = Interval::neg_inf; Interval 863 src/Bounds.cpp a[i].max = select(a.used && b.used, Interval::make_max(a[i].max, b[i].max), Interval 868 src/Bounds.cpp a[i].max = select(a.used, Interval::make_max(a[i].max, b[i].max), b[i].max); Interval 870 src/Bounds.cpp a[i].max = select(b.used, Interval::make_max(a[i].max, b[i].max), a[i].max); Interval 872 src/Bounds.cpp a[i].max = Interval::make_max(a[i].max, b[i].max); Interval 876 src/Bounds.cpp a[i].max = Interval::pos_inf; Interval 982 src/Bounds.cpp BoxesTouched(bool calls, bool provides, string fn, const Scope<Interval> *s, const FuncValueBounds &fb) : Interval 993 src/Bounds.cpp Scope<Interval> scope; Interval 1057 src/Bounds.cpp Interval value_bounds = bounds_of_expr_in_scope(op->value, scope, func_bounds); Interval 1072 src/Bounds.cpp scope.push(op->name, Interval(Variable::make(op->value.type(), min_name), Interval 1140 src/Bounds.cpp Interval i = scope.get(var_a->name); Interval 1147 src/Bounds.cpp Interval likely_i = i; Interval 1156 src/Bounds.cpp Interval bi = bounds_of_expr_in_scope(b, scope, func_bounds); Interval 1176 src/Bounds.cpp Interval i = scope.get(var_b->name); Interval 1178 src/Bounds.cpp Interval likely_i = i; Interval 1187 src/Bounds.cpp Interval ai = bounds_of_expr_in_scope(a, scope, func_bounds); Interval 1285 src/Bounds.cpp scope.push(op->name, Interval(min_val, max_val)); Interval 1313 src/Bounds.cpp string fn, const Scope<Interval> &scope, const FuncValueBounds &fb) { Interval 1349 src/Bounds.cpp string fn, const Scope<Interval> &scope, const FuncValueBounds &fb) { Interval 1355 src/Bounds.cpp map<string, Box> boxes_required(Expr e, const Scope<Interval> &scope, const FuncValueBounds &fb) { Interval 1359 src/Bounds.cpp Box box_required(Expr e, string fn, const Scope<Interval> &scope, const FuncValueBounds &fb) { Interval 1363 src/Bounds.cpp map<string, Box> boxes_required(Stmt s, const Scope<Interval> &scope, const FuncValueBounds &fb) { Interval 1367 src/Bounds.cpp Box box_required(Stmt s, string fn, const Scope<Interval> &scope, const FuncValueBounds &fb) { Interval 1371 src/Bounds.cpp map<string, Box> boxes_provided(Expr e, const Scope<Interval> &scope, const FuncValueBounds &fb) { Interval 1375 src/Bounds.cpp Box box_provided(Expr e, string fn, const Scope<Interval> &scope, const FuncValueBounds &fb) { Interval 1379 src/Bounds.cpp map<string, Box> boxes_provided(Stmt s, const Scope<Interval> &scope, const FuncValueBounds &fb) { Interval 1383 src/Bounds.cpp Box box_provided(Stmt s, string fn, const Scope<Interval> &scope, const FuncValueBounds &fb) { Interval 1387 src/Bounds.cpp map<string, Box> boxes_touched(Expr e, const Scope<Interval> &scope, const FuncValueBounds &fb) { Interval 1391 src/Bounds.cpp Box box_touched(Expr e, string fn, const Scope<Interval> &scope, const FuncValueBounds &fb) { Interval 1395 src/Bounds.cpp map<string, Box> boxes_touched(Stmt s, const Scope<Interval> &scope, const FuncValueBounds &fb) { Interval 1399 src/Bounds.cpp Box box_touched(Stmt s, string fn, const Scope<Interval> &scope, const FuncValueBounds &fb) { Interval 1404 src/Bounds.cpp Interval compute_pure_function_definition_value_bounds( Interval 1405 src/Bounds.cpp const Definition &def, const Scope<Interval>& scope, const FuncValueBounds &fb, int dim) { Interval 1407 src/Bounds.cpp Interval result = bounds_of_expr_in_scope(def.values()[dim], scope, fb); Interval 1412 src/Bounds.cpp Interval s_interval = compute_pure_function_definition_value_bounds(s.definition, scope, fb, dim); Interval 1428 src/Bounds.cpp Interval result; Interval 1433 src/Bounds.cpp Scope<Interval> arg_scope; Interval 1435 src/Bounds.cpp arg_scope.push(f_args[k], Interval::everything()); Interval 1461 src/Bounds.cpp void check(const Scope<Interval> &scope, Expr e, Expr correct_min, Expr correct_max) { Interval 1463 src/Bounds.cpp Interval result = bounds_of_expr_in_scope(e, scope, fb); Interval 1479 src/Bounds.cpp Scope<Interval> scope; Interval 1481 src/Bounds.cpp scope.push("x", Interval(Expr(0), Expr(10))); Interval 1492 src/Bounds.cpp check(scope, x/(x+y), Interval::neg_inf, Interval::pos_inf); Interval 1567 src/Bounds.cpp Box r2({Interval(Expr(5), Expr(19))}); Interval 16 src/Bounds.h typedef std::map<std::pair<std::string, int>, Interval> FuncValueBounds; Interval 30 src/Bounds.h Interval bounds_of_expr_in_scope(Expr expr, Interval 31 src/Bounds.h const Scope<Interval> &scope, Interval 48 src/Bounds.h std::vector<Interval> bounds; Interval 52 src/Bounds.h Box(const std::vector<Interval> &b) : bounds(b) {} Interval 56 src/Bounds.h Interval &operator[](int i) {return bounds[i];} Interval 57 src/Bounds.h const Interval &operator[](int i) const {return bounds[i];} Interval 59 src/Bounds.h void push_back(const Interval &i) {bounds.push_back(i);} Interval 87 src/Bounds.h const Scope<Interval> &scope = Scope<Interval>::empty_scope(), Interval 90 src/Bounds.h const Scope<Interval> &scope = Scope<Interval>::empty_scope(), Interval 99 src/Bounds.h const Scope<Interval> &scope = Scope<Interval>::empty_scope(), Interval 102 src/Bounds.h const Scope<Interval> &scope = Scope<Interval>::empty_scope(), Interval 111 src/Bounds.h const Scope<Interval> &scope = Scope<Interval>::empty_scope(), Interval 114 src/Bounds.h const Scope<Interval> &scope = Scope<Interval>::empty_scope(), Interval 121 src/Bounds.h const Scope<Interval> &scope = Scope<Interval>::empty_scope(), Interval 124 src/Bounds.h const Scope<Interval> &scope = Scope<Interval>::empty_scope(), Interval 128 src/Bounds.h const Scope<Interval> &scope = Scope<Interval>::empty_scope(), Interval 131 src/Bounds.h const Scope<Interval> &scope = Scope<Interval>::empty_scope(), Interval 135 src/Bounds.h const Scope<Interval> &scope = Scope<Interval>::empty_scope(), Interval 138 src/Bounds.h const Scope<Interval> &scope = Scope<Interval>::empty_scope(), Interval 63 src/BoundsInference.cpp Interval result; Interval 68 src/BoundsInference.cpp Scope<Interval> scope; Interval 73 src/BoundsInference.cpp Interval in = bounds_of_expr_in_scope(op->value, scope); Interval 86 src/BoundsInference.cpp Interval in(Variable::make(Int(32), op->name + ".loop_min"), Interval 99 src/BoundsInference.cpp Interval bounds_of_inner_var(string var, Stmt s) { Interval 311 src/BoundsInference.cpp b[i] = Interval(min, max); Interval 610 src/BoundsInference.cpp void populate_scope(Scope<Interval> &result) { Interval 614 src/BoundsInference.cpp Interval(Variable::make(Int(32), arg + ".min"), Interval 620 src/BoundsInference.cpp result.push(rv.var, Interval(Variable::make(Int(32), arg + ".min"), Interval 721 src/BoundsInference.cpp Scope<Interval> scope; Interval 745 src/BoundsInference.cpp b[d] = Interval(min, max); Interval 830 src/BoundsInference.cpp output_box.push_back(Interval(min, (min + extent) - 1)); Interval 882 src/BoundsInference.cpp Scope<Interval> empty_scope; Interval 952 src/BoundsInference.cpp Interval in = bounds_of_inner_var(var, body); Interval 25 src/BoundsInference.h const std::map<std::pair<std::string, int>, Interval> &func_bounds, Interval 90 src/FuseGPUThreadLoops.cpp Scope<Interval> scope; Interval 92 src/FuseGPUThreadLoops.cpp Interval(Variable::make(Int(32), op->name + ".loop_min"), Interval 288 src/FuseGPUThreadLoops.cpp Scope<Interval> scope; Interval 289 src/FuseGPUThreadLoops.cpp scope.push(op->name, Interval(Variable::make(Int(32), op->name + ".loop_min"), Interval 1492 src/HexagonOptimize.cpp Expr span_of_bounds(Interval bounds) { Interval 1521 src/HexagonOptimize.cpp Scope<Interval> bounds; Interval 1558 src/HexagonOptimize.cpp Interval unaligned_index_bounds = bounds_of_expr_in_scope(index, bounds); Interval 1564 src/HexagonOptimize.cpp Interval aligned_index_bounds = { Interval 1569 src/HexagonOptimize.cpp for (Interval index_bounds : {aligned_index_bounds, unaligned_index_bounds}) { Interval 11 src/Interval.cpp Expr Interval::make_max(Expr a, Expr b) { Interval 15 src/Interval.cpp if (a.same_as(Interval::pos_inf)) return a; Interval 16 src/Interval.cpp if (b.same_as(Interval::pos_inf)) return b; Interval 17 src/Interval.cpp if (a.same_as(Interval::neg_inf)) return b; Interval 18 src/Interval.cpp if (b.same_as(Interval::neg_inf)) return a; Interval 42 src/Interval.cpp return Interval::make_max(ma->a, Interval::make_max(ma->b, b)); Interval 52 src/Interval.cpp Expr Interval::make_min(Expr a, Expr b) { Interval 56 src/Interval.cpp if (a.same_as(Interval::pos_inf)) return b; Interval 57 src/Interval.cpp if (b.same_as(Interval::pos_inf)) return a; Interval 58 src/Interval.cpp if (a.same_as(Interval::neg_inf)) return a; Interval 59 src/Interval.cpp if (b.same_as(Interval::neg_inf)) return b; Interval 83 src/Interval.cpp return Interval::make_min(ma->a, Interval::make_min(ma->b, b)); Interval 93 src/Interval.cpp void Interval::include(const Interval &i) { Interval 94 src/Interval.cpp max = Interval::make_max(max, i.max); Interval 95 src/Interval.cpp min = Interval::make_min(min, i.min); Interval 98 src/Interval.cpp void Interval::include(Expr e) { Interval 99 src/Interval.cpp max = Interval::make_max(max, e); Interval 100 src/Interval.cpp min = Interval::make_min(min, e); Interval 103 src/Interval.cpp Interval Interval::make_union(const Interval &a, const Interval &b) { Interval 104 src/Interval.cpp Interval result = a; Interval 109 src/Interval.cpp Interval Interval::make_intersection(const Interval &a, const Interval &b) { Interval 110 src/Interval.cpp return Interval(Interval::make_max(a.min, b.min), Interval 111 src/Interval.cpp Interval::make_min(a.max, b.max)); Interval 116 src/Interval.cpp Expr Interval::pos_inf = Variable::make(Handle(), "pos_inf"); Interval 117 src/Interval.cpp Expr Interval::neg_inf = Variable::make(Handle(), "neg_inf"); Interval 121 src/Interval.cpp void check(Interval result, Interval expected, int line) { Interval 131 src/Interval.cpp Interval e = Interval::everything(); Interval 132 src/Interval.cpp Interval n = Interval::nothing(); Interval 134 src/Interval.cpp Interval xp{x, Interval::pos_inf}; Interval 135 src/Interval.cpp Interval xn{Interval::neg_inf, x}; Interval 136 src/Interval.cpp Interval xx{x, x}; Interval 173 src/Interval.cpp check(Interval::make_union(xp, xn), e, __LINE__); Interval 174 src/Interval.cpp check(Interval::make_union(e, xn), e, __LINE__); Interval 175 src/Interval.cpp check(Interval::make_union(xn, e), e, __LINE__); Interval 176 src/Interval.cpp check(Interval::make_union(xn, n), xn, __LINE__); Interval 177 src/Interval.cpp check(Interval::make_union(n, xp), xp, __LINE__); Interval 178 src/Interval.cpp check(Interval::make_union(xp, xp), xp, __LINE__); Interval 180 src/Interval.cpp check(Interval::make_intersection(xp, xn), Interval::single_point(x), __LINE__); Interval 181 src/Interval.cpp check(Interval::make_intersection(e, xn), xn, __LINE__); Interval 182 src/Interval.cpp check(Interval::make_intersection(xn, e), xn, __LINE__); Interval 183 src/Interval.cpp check(Interval::make_intersection(xn, n), n, __LINE__); Interval 184 src/Interval.cpp check(Interval::make_intersection(n, xp), n, __LINE__); Interval 185 src/Interval.cpp check(Interval::make_intersection(xp, xp), xp, __LINE__); Interval 187 src/Interval.cpp check(Interval::make_union({3, Interval::pos_inf}, {5, Interval::pos_inf}), {3, Interval::pos_inf}, __LINE__); Interval 188 src/Interval.cpp check(Interval::make_intersection({3, Interval::pos_inf}, {5, Interval::pos_inf}), {5, Interval::pos_inf}, __LINE__); Interval 190 src/Interval.cpp check(Interval::make_union({Interval::neg_inf, 3}, {Interval::neg_inf, 5}), {Interval::neg_inf, 5}, __LINE__); Interval 191 src/Interval.cpp check(Interval::make_intersection({Interval::neg_inf, 3}, {Interval::neg_inf, 5}), {Interval::neg_inf, 3}, __LINE__); Interval 193 src/Interval.cpp check(Interval::make_union({3, 4}, {9, 10}), {3, 10}, __LINE__); Interval 194 src/Interval.cpp check(Interval::make_intersection({3, 4}, {9, 10}), {9, 4}, __LINE__); Interval 196 src/Interval.cpp check(Interval::make_union({3, 9}, {4, 10}), {3, 10}, __LINE__); Interval 197 src/Interval.cpp check(Interval::make_intersection({3, 9}, {4, 10}), {4, 9}, __LINE__); Interval 24 src/Interval.h Interval() : min(neg_inf), max(pos_inf) {} Interval 27 src/Interval.h Interval(Expr min, Expr max) : min(min), max(max) { Interval 32 src/Interval.h static Interval everything() {return Interval(neg_inf, pos_inf);} Interval 35 src/Interval.h static Interval nothing() {return Interval(pos_inf, neg_inf);} Interval 38 src/Interval.h static Interval single_point(Expr e) {return Interval(e, e);} Interval 62 src/Interval.h bool same_as(const Interval &other) {return min.same_as(other.min) && max.same_as(other.max);} Interval 65 src/Interval.h EXPORT void include(const Interval &i); Interval 71 src/Interval.h EXPORT static Interval make_union(const Interval &a, const Interval &b); Interval 74 src/Interval.h EXPORT static Interval make_intersection(const Interval &a, const Interval &b); Interval 136 src/ParallelRVar.cpp Scope<Interval> bounds; Interval 138 src/ParallelRVar.cpp Interval in = Interval(rv.min, simplify(rv.min + rv.extent - 1)); Interval 217 src/PartitionLoops.cpp Interval interval; Interval 273 src/PartitionLoops.cpp s.condition = and_condition_over_domain(s.condition, Scope<Interval>::empty_scope()); Interval 338 src/PartitionLoops.cpp Scope<Interval> varying; Interval 339 src/PartitionLoops.cpp varying.push(op->name, Interval(op->min, op->min + op->extent - 1)); Interval 479 src/PartitionLoops.cpp Interval outer = solve_for_outer_interval(s.condition, op->name); Interval 39 src/Prefetch.cpp Scope<Interval> scope; Interval 89 src/Prefetch.cpp b.push_back(Interval(buf_min_i, buf_max_i)); Interval 98 src/Prefetch.cpp b.push_back(Interval(r.min, r.min + r.extent - 1)); Interval 114 src/Prefetch.cpp Interval value_bounds = bounds_of_expr_in_scope(op->value, scope); Interval 129 src/Prefetch.cpp scope.push(op->name, Interval(Variable::make(op->value.type(), min_name), Interval 197 src/Prefetch.cpp scope.push(op->name, Interval(loop_var, loop_var)); Interval 214 src/Prefetch.cpp scope.push(op->name, Interval(fetch_at, fetch_at)); Interval 178 src/Simplify.cpp Simplify(bool r, const Scope<Interval> *bi, const Scope<ModulusRemainder> *ai) : Interval 183 src/Simplify.cpp for (Scope<Interval>::const_iterator iter = bi->cbegin(); iter != bi->cend(); ++iter) { Interval 4986 src/Simplify.cpp const Scope<Interval> &bounds, Interval 4992 src/Simplify.cpp const Scope<Interval> &bounds, Interval 5041 src/Simplify.cpp void check_in_bounds(const Expr &a, const Expr &b, const Scope<Interval> &bi) { Interval 6328 src/Simplify.cpp Scope<Interval> bounds_info; Interval 6329 src/Simplify.cpp bounds_info.push("x", Interval(0,4)); Interval 25 src/Simplify.h const Scope<Interval> &bounds = Scope<Interval>::empty_scope(), Interval 28 src/Simplify.h const Scope<Interval> &bounds = Scope<Interval>::empty_scope(), Interval 746 src/Solve.cpp map<pair<string, bool>, Interval> solved_vars; Interval 756 src/Solve.cpp result = Interval::everything(); Interval 759 src/Solve.cpp result = Interval::nothing(); Interval 767 src/Solve.cpp result = Interval::everything(); Interval 770 src/Solve.cpp result = Interval::nothing(); Interval 776 src/Solve.cpp Interval interval_union(Interval ia, Interval ib) { Interval 779 src/Solve.cpp return Interval::make_union(ia, ib); Interval 782 src/Solve.cpp Interval intersection = Interval::make_intersection(ia, ib); Interval 786 src/Solve.cpp return Interval::make_union(ia, ib); Interval 800 src/Solve.cpp Interval ia = result; Interval 802 src/Solve.cpp Interval ib = result; Interval 807 src/Solve.cpp result = Interval::make_intersection(ia, ib); Interval 818 src/Solve.cpp Interval ia = result; Interval 820 src/Solve.cpp Interval ib = result; Interval 825 src/Solve.cpp result = Interval::make_intersection(ia, ib); Interval 896 src/Solve.cpp std::map<Expr, Interval, IRDeepCompare> cache_f, cache_t; Interval 930 src/Solve.cpp result = Interval(Interval::neg_inf, le->b); Interval 932 src/Solve.cpp result = Interval(le->b + 1, Interval::pos_inf); Interval 987 src/Solve.cpp result = Interval(ge->b, Interval::pos_inf); Interval 989 src/Solve.cpp result = Interval(Interval::neg_inf, ge->b - 1); Interval 1065 src/Solve.cpp Interval result; Interval 1075 src/Solve.cpp Scope<Interval> scope; Interval 1087 src/Solve.cpp Interval get_bounds(Expr a) { Interval 1088 src/Solve.cpp Interval bounds = bounds_of_expr_in_scope(a, scope); Interval 1131 src/Solve.cpp if (a.same_as(Interval::pos_inf) || Interval 1132 src/Solve.cpp b.same_as(Interval::pos_inf) || Interval 1133 src/Solve.cpp a.same_as(Interval::neg_inf) || Interval 1134 src/Solve.cpp b.same_as(Interval::neg_inf)) { Interval 1165 src/Solve.cpp Interval i = get_bounds(delta); Interval 1197 src/Solve.cpp Interval i = scope.get(op->name); Interval 1230 src/Solve.cpp Interval value_bounds; Interval 1237 src/Solve.cpp value_bounds = Interval(const_false(), const_true()); Interval 1252 src/Solve.cpp value_bounds.min = Interval::neg_inf; Interval 1259 src/Solve.cpp value_bounds.max = Interval::pos_inf; Interval 1264 src/Solve.cpp scope.push(op->name, Interval(min_var, max_var)); Interval 1305 src/Solve.cpp AndConditionOverDomain(const Scope<Interval> &parent_scope) { Interval 1326 src/Solve.cpp Interval solve_for_inner_interval(Expr c, const std::string &var) { Interval 1335 src/Solve.cpp return Interval::nothing(); Interval 1340 src/Solve.cpp Interval solve_for_outer_interval(Expr c, const std::string &var) { Interval 1349 src/Solve.cpp return Interval::nothing(); Interval 1354 src/Solve.cpp Expr and_condition_over_domain(Expr e, const Scope<Interval> &varying) { Interval 1371 src/Solve.cpp void check_interval(Expr a, Interval i, bool outer) { Interval 1372 src/Solve.cpp Interval result = Interval 1389 src/Solve.cpp check_interval(a, Interval(min, max), true); Interval 1393 src/Solve.cpp check_interval(a, Interval(min, max), false); Interval 1396 src/Solve.cpp void check_and_condition(Expr orig, Expr result, Interval i) { Interval 1397 src/Solve.cpp Scope<Interval> s; Interval 1485 src/Solve.cpp check_inner_interval(x > 0, 1, Interval::pos_inf); Interval 1486 src/Solve.cpp check_inner_interval(x < 100, Interval::neg_inf, 99); Interval 1495 src/Solve.cpp check_inner_interval((x >= 10 && x <= 90) && sin(x) > 0.6f, Interval::pos_inf, Interval::neg_inf); Interval 1503 src/Solve.cpp check_inner_interval(3*x + 4 < 27, Interval::neg_inf, 7); Interval 1504 src/Solve.cpp check_outer_interval(3*x + 4 < 27, Interval::neg_inf, 7); Interval 1507 src/Solve.cpp check_outer_interval(min(x, y) > 17, 18, Interval::pos_inf); Interval 1509 src/Solve.cpp check_inner_interval(x/5 < 17, Interval::neg_inf, 84); Interval 1510 src/Solve.cpp check_outer_interval(x/5 < 17, Interval::neg_inf, 84); Interval 1513 src/Solve.cpp check_and_condition(x > 0, const_true(), Interval(1, y)); Interval 1514 src/Solve.cpp check_and_condition(x > 0, const_true(), Interval(5, y)); Interval 1515 src/Solve.cpp check_and_condition(x > 0, const_false(), Interval(-5, y)); Interval 1516 src/Solve.cpp check_and_condition(x > 0 && x < 10, const_true(), Interval(1, 9)); Interval 1517 src/Solve.cpp check_and_condition(x > 0 || sin(x) == 0.5f, const_true(), Interval(100, 200)); Interval 1519 src/Solve.cpp check_and_condition(x <= 0, const_true(), Interval(-100, 0)); Interval 1520 src/Solve.cpp check_and_condition(x <= 0, const_false(), Interval(-100, 1)); Interval 1522 src/Solve.cpp check_and_condition(x <= 0 || y > 2, const_true(), Interval(-100, 0)); Interval 1523 src/Solve.cpp check_and_condition(x > 0 || y > 2, 2 < y, Interval(-100, 0)); Interval 1525 src/Solve.cpp check_and_condition(x == 0, const_true(), Interval(0, 0)); Interval 1526 src/Solve.cpp check_and_condition(x == 0, const_false(), Interval(-10, 10)); Interval 1527 src/Solve.cpp check_and_condition(x != 0, const_false(), Interval(-10, 10)); Interval 1528 src/Solve.cpp check_and_condition(x != 0, const_true(), Interval(-20, -10)); Interval 1530 src/Solve.cpp check_and_condition(y == 0, y == 0, Interval(-10, 10)); Interval 1531 src/Solve.cpp check_and_condition(y != 0, y != 0, Interval(-10, 10)); Interval 1532 src/Solve.cpp check_and_condition((x == 5) && (y != 0), const_false(), Interval(-10, 10)); Interval 1533 src/Solve.cpp check_and_condition((x == 5) && (y != 3), y != 3, Interval(5, 5)); Interval 1534 src/Solve.cpp check_and_condition((x != 0) && (y != 0), const_false(), Interval(-10, 10)); Interval 1535 src/Solve.cpp check_and_condition((x != 0) && (y != 0), y != 0, Interval(-20, -10)); Interval 1544 src/Solve.cpp Scope<Interval> s; Interval 1545 src/Solve.cpp s.push("x", Interval(-10, 10)); Interval 1554 src/Solve.cpp Interval result = solve_for_outer_interval(test, "z"); Interval 34 src/Solve.h EXPORT Interval solve_for_outer_interval(Expr c, const std::string &variable); Interval 38 src/Solve.h EXPORT Interval solve_for_inner_interval(Expr c, const std::string &variable); Interval 47 src/Solve.h Expr and_condition_over_domain(Expr c, const Scope<Interval> &varying); Interval 192 src/StorageFolding.cpp Scope<Interval> scope; Interval 193 src/StorageFolding.cpp scope.push(op->name, Interval(Variable::make(Int(32), op->name + ".loop_min"), Interval 107 src/TrimNoOps.cpp is_no_op = and_condition_over_domain(is_no_op, Scope<Interval>::empty_scope()); Interval 120 src/TrimNoOps.cpp Scope<Interval> varying; Interval 121 src/TrimNoOps.cpp varying.push(op->name, Interval(op->min, op->min + op->extent - 1)); Interval 180 src/TrimNoOps.cpp Interval i; Interval 218 src/TrimNoOps.cpp Scope<Interval> s; Interval 328 src/TrimNoOps.cpp SimplifyUsingBounds(const string &v, const Interval &i) { Interval 370 src/TrimNoOps.cpp Interval i = solve_for_outer_interval(!is_no_op.condition, op->name); Interval 54 src/VectorizeLoops.cpp Interval bounds_of_lanes(Expr e) { Interval 57 src/VectorizeLoops.cpp Interval ia = bounds_of_lanes(add->a); Interval 60 src/VectorizeLoops.cpp Interval ia = bounds_of_lanes(add->b); Interval 65 src/VectorizeLoops.cpp Interval ia = bounds_of_lanes(sub->a); Interval 68 src/VectorizeLoops.cpp Interval ia = bounds_of_lanes(sub->b); Interval 74 src/VectorizeLoops.cpp Interval ia = bounds_of_lanes(mul->a); Interval 77 src/VectorizeLoops.cpp Interval ia = bounds_of_lanes(mul->a); Interval 82 src/VectorizeLoops.cpp Interval ia = bounds_of_lanes(mul->b); Interval 85 src/VectorizeLoops.cpp Interval ia = bounds_of_lanes(mul->b); Interval 92 src/VectorizeLoops.cpp Interval ia = bounds_of_lanes(div->a); Interval 95 src/VectorizeLoops.cpp Interval ia = bounds_of_lanes(div->a); Interval 101 src/VectorizeLoops.cpp Interval ia = bounds_of_lanes(and_->a); Interval 104 src/VectorizeLoops.cpp Interval ia = bounds_of_lanes(and_->b); Interval 109 src/VectorizeLoops.cpp Interval ia = bounds_of_lanes(or_->a); Interval 112 src/VectorizeLoops.cpp Interval ia = bounds_of_lanes(or_->b); Interval 117 src/VectorizeLoops.cpp Interval ia = bounds_of_lanes(min->a); Interval 120 src/VectorizeLoops.cpp Interval ia = bounds_of_lanes(min->b); Interval 125 src/VectorizeLoops.cpp Interval ia = bounds_of_lanes(max->a); Interval 128 src/VectorizeLoops.cpp Interval ia = bounds_of_lanes(max->b); Interval 132 src/VectorizeLoops.cpp Interval ia = bounds_of_lanes(not_->a); Interval 147 src/VectorizeLoops.cpp Interval ia = bounds_of_lanes(let->value); Interval 148 src/VectorizeLoops.cpp Interval ib = bounds_of_lanes(let->body); Interval 595 src/VectorizeLoops.cpp Interval i = bounds_of_lanes(mutated_value);