Lines Matching refs:max

56 	if (drange->min.value == drange->max.value)  in get_err_pointer_str()
59 snprintf(buf, sizeof(buf), "(%lld)-(%lld)", drange->min.value, drange->max.value); in get_err_pointer_str()
90 } else if (sval_cmp(tmp->min, tmp->max) == 0) { in show_rl()
96 sval_to_str(tmp->max)); in show_rl()
132 static int truncates_nicely(struct symbol *type, sval_t min, sval_t max) in truncates_nicely() argument
144 return (min.uvalue & mask) == (max.uvalue & mask); in truncates_nicely()
147 static void add_range_t(struct symbol *type, struct range_list **rl, sval_t min, sval_t max) in add_range_t() argument
150 if (sval_cmp(min, max) == 0) { in add_range_t()
151 add_range(rl, sval_cast(type, min), sval_cast(type, max)); in add_range_t()
156 if (sval_fits(type, min) && sval_fits(type, max)) { in add_range_t()
157 add_range(rl, sval_cast(type, min), sval_cast(type, max)); in add_range_t()
161 if (truncates_nicely(type, min, max)) { in add_range_t()
162 add_range(rl, sval_cast(type, min), sval_cast(type, max)); in add_range_t()
172 if (sval_too_big(type, min) || sval_too_big(type, max)) { in add_range_t()
179 if (sval_is_positive(max)) { in add_range_t()
180 if (sval_too_high(type, max)) { in add_range_t()
184 add_range(rl, sval_type_val(type, 0), sval_cast(type, max)); in add_range_t()
185 max = sval_type_max(type); in add_range_t()
187 max = sval_cast(type, max); in add_range_t()
190 add_range(rl, min, max); in add_range_t()
194 if (sval_unsigned(max) && sval_is_negative(sval_cast(type, max))) { in add_range_t()
201 max = sval_cast(type, max); in add_range_t()
202 add_range(rl, min, max); in add_range_t()
205 add_range(rl, sval_cast(type, min), sval_cast(type, max)); in add_range_t()
353 sval_t min, max; in filter_by_comparison() local
365 max = sval_type_max(cast_type); in filter_by_comparison()
372 ret_rl = remove_range(left_orig, rl_max(right_orig), max); in filter_by_comparison()
377 ret_rl = remove_range(left_orig, add_one(rl_max(right_orig)), max); in filter_by_comparison()
536 sval_t prev_min, min, max; in str_to_rl_helper() local
541 max = sval_type_max(type); in str_to_rl_helper()
546 min = max; in str_to_rl_helper()
547 max = sval_type_max(type); in str_to_rl_helper()
548 add_range_t(type, &rl_tmp, min, max); in str_to_rl_helper()
556 max = min; in str_to_rl_helper()
570 max = sval_type_max(type); in str_to_rl_helper()
571 add_range_t(type, &rl_tmp, min, max); in str_to_rl_helper()
583 max = parse_val(1, call, type, c, &c); in str_to_rl_helper()
584 if (!sval_fits(type, max)) in str_to_rl_helper()
585 max = sval_type_max(type); in str_to_rl_helper()
587 max = sval_type_max(type); in str_to_rl_helper()
588 add_range_t(type, &rl_tmp, min, max); in str_to_rl_helper()
593 prev_min = max; in str_to_rl_helper()
594 add_range_t(type, &rl_tmp, min, max); in str_to_rl_helper()
668 if (!sval_fits(type, tmp->max)) in rl_is_sane()
670 if (sval_cmp(tmp->min, tmp->max) > 0) in rl_is_sane()
702 if (sval_is_min(drange->min) && sval_is_max(drange->max)) in is_whole_rl()
719 sval_cmp(drange->max, valid_ptr_max_sval) == 0) in is_unknown_ptr()
735 sval_is_max(drange->max)) in is_whole_rl_non_zero()
737 if (!sval_is_min(drange->min) || drange->max.value != -1) in is_whole_rl_non_zero()
740 if (drange->min.value != 1 || !sval_is_max(drange->max)) in is_whole_rl_non_zero()
768 return drange->max; in rl_max()
773 sval_t min, max; in rl_to_sval() local
779 max = rl_max(rl); in rl_to_sval()
780 if (sval_cmp(min, max) != 0) in rl_to_sval()
793 static struct data_range *alloc_range_helper_sval(sval_t min, sval_t max, int perm) in alloc_range_helper_sval() argument
802 ret->max = max; in alloc_range_helper_sval()
806 struct data_range *alloc_range(sval_t min, sval_t max) in alloc_range() argument
808 return alloc_range_helper_sval(min, max, 0); in alloc_range()
811 struct data_range *alloc_range_perm(sval_t min, sval_t max) in alloc_range_perm() argument
813 return alloc_range_helper_sval(min, max, 1); in alloc_range_perm()
816 struct range_list *alloc_rl(sval_t min, sval_t max) in alloc_rl() argument
820 if (sval_cmp(min, max) > 0) in alloc_rl()
823 add_range(&rl, min, max); in alloc_rl()
837 static bool collapse_pointer_rl(struct range_list **rl, sval_t min, sval_t max) in collapse_pointer_rl() argument
871 sval_cmp(tmp->max, valid_ptr_max_sval) <= 0) in collapse_pointer_rl()
874 add_range(&new_rl, tmp->min, tmp->max); in collapse_pointer_rl()
877 add_range(&new_rl, min, max); in collapse_pointer_rl()
887 void add_range(struct range_list **list, sval_t min, sval_t max) in add_range() argument
910 max = sval_cast(rl_type(*list), max); in add_range()
915 max = sval_cast(rl_type(*list), max); in add_range()
921 if (sval_cmp(min, max) > 0) { in add_range()
923 max = sval_type_max(min.type); in add_range()
926 if (collapse_pointer_rl(list, min, max)) in add_range()
938 if (!sval_is_max(max) && max.value + 1 == tmp->min.value) { in add_range()
940 new->max = tmp->max; in add_range()
946 if (sval_cmp(max, tmp->min) < 0) in add_range()
949 if (sval_cmp(max, tmp->max) <= 0) { in add_range()
951 new->max = tmp->max; in add_range()
961 if (!sval_is_max(max) && max.value + 1 == tmp->min.value) { in add_range()
963 new = alloc_range(min, tmp->max); in add_range()
967 if (sval_cmp(max, tmp->min) < 0) { /* new range entirely below */ in add_range()
968 new = alloc_range(min, max); in add_range()
973 if (sval_cmp(max, tmp->max) < 0) in add_range()
974 max = tmp->max; in add_range()
977 new = alloc_range(min, max); in add_range()
983 if (sval_cmp(max, tmp->max) <= 0) /* new range already included */ in add_range()
985 if (sval_cmp(min, tmp->max) <= 0) { /* new range partially above */ in add_range()
987 new = alloc_range(min, max); in add_range()
992 if (!sval_is_min(min) && min.value - 1 == tmp->max.value) { in add_range()
994 new = alloc_range(tmp->min, max); in add_range()
1003 new = alloc_range(min, max); in add_range()
1028 new = alloc_range_perm(tmp->min, tmp->max); in clone_rl_permanent()
1040 add_range(&ret, tmp->min, tmp->max); in rl_union()
1043 add_range(&ret, tmp->min, tmp->max); in rl_union()
1048 struct range_list *remove_range(struct range_list *list, sval_t min, sval_t max) in remove_range() argument
1057 max = sval_cast(rl_type(list), max); in remove_range()
1058 if (sval_cmp(min, max) > 0) { in remove_range()
1060 min = max; in remove_range()
1061 max = tmp; in remove_range()
1065 if (sval_cmp(tmp->max, min) < 0) { in remove_range()
1066 add_range(&ret, tmp->min, tmp->max); in remove_range()
1069 if (sval_cmp(tmp->min, max) > 0) { in remove_range()
1070 add_range(&ret, tmp->min, tmp->max); in remove_range()
1073 if (sval_cmp(tmp->min, min) >= 0 && sval_cmp(tmp->max, max) <= 0) in remove_range()
1076 max.value++; in remove_range()
1077 add_range(&ret, max, tmp->max); in remove_range()
1078 } else if (sval_cmp(tmp->max, max) <= 0) { in remove_range()
1083 max.value++; in remove_range()
1085 add_range(&ret, max, tmp->max); in remove_range()
1099 if (sval_cmp(one->max, two->max) != 0) in ranges_equiv()
1133 if (sval_cmp(left->min, right->max) < 0) in true_comparison_range()
1138 if (sval_cmp(left->min, right->max) <= 0) in true_comparison_range()
1142 if (sval_cmp(left->max, right->min) < 0) in true_comparison_range()
1144 if (sval_cmp(left->min, right->max) > 0) in true_comparison_range()
1149 if (sval_cmp(left->max, right->min) >= 0) in true_comparison_range()
1154 if (sval_cmp(left->max, right->min) > 0) in true_comparison_range()
1158 if (sval_cmp(left->min, left->max) != 0) in true_comparison_range()
1160 if (sval_cmp(right->min, right->max) != 0) in true_comparison_range()
1185 if (sval_cmp(left->max, right->min) >= 0) in false_comparison_range_sval()
1190 if (sval_cmp(left->max, right->min) > 0) in false_comparison_range_sval()
1194 if (sval_cmp(left->min, left->max) != 0) in false_comparison_range_sval()
1196 if (sval_cmp(right->min, right->max) != 0) in false_comparison_range_sval()
1203 if (sval_cmp(left->min, right->max) < 0) in false_comparison_range_sval()
1208 if (sval_cmp(left->min, right->max) <= 0) in false_comparison_range_sval()
1212 if (sval_cmp(left->max, right->min) < 0) in false_comparison_range_sval()
1214 if (sval_cmp(left->min, right->max) > 0) in false_comparison_range_sval()
1367 sval_cmp(tmp->max, sval) >= 0) in rl_has_sval()
1413 sval_t min, max; in rl_truncate_cast() local
1423 max = tmp->max; in rl_truncate_cast()
1426 max.uvalue = tmp->max.uvalue & ((1ULL << type_bits(type)) - 1); in rl_truncate_cast()
1428 if (sval_cmp(min, max) > 0) { in rl_truncate_cast()
1430 max = sval_cast(type, max); in rl_truncate_cast()
1432 add_range_t(type, &ret, min, max); in rl_truncate_cast()
1457 if (type != tmp->min.type || type != tmp->max.type) in rl_type_consistent()
1470 sval_t max = { .type = &bool_ctype }; in cast_to_bool() local
1473 if (tmp->min.value || tmp->max.value) in cast_to_bool()
1476 sval_is_negative(tmp->max)) in cast_to_bool()
1479 tmp->max.value == 0) in cast_to_bool()
1482 tmp->max.value > 0) in cast_to_bool()
1489 max.value = 1; in cast_to_bool()
1491 add_range(&ret, min, max); in cast_to_bool()
1514 add_range_t(type, &ret, tmp->min, tmp->max); in cast_rl()
1528 rl = remove_range(rl, tmp->min, tmp->max); in rl_filter()
1546 if (sval_cmp(one->max, two->min) < 0) { in do_intersection()
1550 if (sval_cmp(one->min, two->min) < 0 && sval_cmp(one->max, two->max) <= 0) { in do_intersection()
1551 add_range(&ret, two->min, one->max); in do_intersection()
1555 if (sval_cmp(one->min, two->min) >= 0 && sval_cmp(one->max, two->max) <= 0) { in do_intersection()
1556 add_range(&ret, one->min, one->max); in do_intersection()
1560 if (sval_cmp(one->min, two->min) < 0 && sval_cmp(one->max, two->max) > 0) { in do_intersection()
1561 add_range(&ret, two->min, two->max); in do_intersection()
1565 if (sval_cmp(one->min, two->max) <= 0 && sval_cmp(one->max, two->max) > 0) { in do_intersection()
1566 add_range(&ret, one->min, two->max); in do_intersection()
1570 if (sval_cmp(one->min, two->max) <= 0) { in do_intersection()
1612 sval_t max; in handle_mod_rl() local
1614 max = rl_max(right); in handle_mod_rl()
1615 if (sval_is_max(max)) in handle_mod_rl()
1617 if (max.value == 0) in handle_mod_rl()
1619 max.value--; in handle_mod_rl()
1620 if (sval_is_negative(max)) in handle_mod_rl()
1622 if (sval_cmp(rl_max(left), max) < 0) in handle_mod_rl()
1624 zero = max; in handle_mod_rl()
1626 return alloc_rl(zero, max); in handle_mod_rl()
1643 if (sval_is_positive(tmp->max)) { in get_neg_rl()
1644 new = alloc_range(tmp->min, tmp->max); in get_neg_rl()
1645 new->max.value = -1; in get_neg_rl()
1646 add_range(&ret, new->min, new->max); in get_neg_rl()
1649 add_range(&ret, tmp->min, tmp->max); in get_neg_rl()
1667 if (sval_is_negative(tmp->max)) in get_pos_rl()
1670 add_range(&ret, tmp->min, tmp->max); in get_pos_rl()
1673 new = alloc_range(tmp->min, tmp->max); in get_pos_rl()
1675 add_range(&ret, new->min, new->max); in get_pos_rl()
1684 sval_t min, max; in divide_rl_helper() local
1699 max = sval_binop(rl_max(left), '/', right_min); in divide_rl_helper()
1702 return alloc_rl(min, max); in divide_rl_helper()
1757 sval_t min, max; in handle_add_mult_rl() local
1768 max = sval_binop(rl_max(left), op, rl_max(right)); in handle_add_mult_rl()
1770 return alloc_rl(min, max); in handle_add_mult_rl()
1777 sval_t min, max; in handle_sub_rl() local
1795 max = rl_max(left_rl); in handle_sub_rl()
1822 if (sval_cmp(tmp, max) < 0) in handle_sub_rl()
1823 max = tmp; in handle_sub_rl()
1826 if (sval_is_min(min) && sval_is_max(max)) in handle_sub_rl()
1829 return alloc_rl(min, max); in handle_sub_rl()
1845 sval_t min, max; in handle_OR_rl() local
1857 min.type = max.type = &ullong_ctype; in handle_OR_rl()
1859 max.uvalue = left_max | right_max; in handle_OR_rl()
1861 return cast_rl(rl_type(left), alloc_rl(min, max)); in handle_OR_rl()
1868 sval_t zero, max; in handle_XOR_rl() local
1876 zero = max = rl_min(left); in handle_XOR_rl()
1878 max.uvalue = fls_mask((left_maybe | right_maybe) ^ (left_set & right_set)); in handle_XOR_rl()
1880 return cast_rl(rl_type(left), alloc_rl(zero, max)); in handle_XOR_rl()
1901 sval_t min, max, zero; in handle_AND_rl() local
1908 max = rl_max(left); in handle_AND_rl()
1909 max.uvalue = bits; in handle_AND_rl()
1910 min = sval_lowest_set_bit(max); in handle_AND_rl()
1912 rl = alloc_rl(min, max); in handle_AND_rl()
1927 sval_t shift, min, max; in handle_lshift() local
1945 max = tmp->max; in handle_lshift()
1947 if (min.value == 0 || max.value > sval_type_max(max.type).uvalue >> shift.uvalue) in handle_lshift()
1949 if (min.value == 0 && max.value == 0) in handle_lshift()
1954 max = sval_binop(max, SPECIAL_LEFTSHIFT, shift); in handle_lshift()
1955 add_range(&ret, min, max); in handle_lshift()
1971 sval_t shift, min, max; in handle_rshift() local
1980 max = sval_binop(tmp->max, SPECIAL_RIGHTSHIFT, shift); in handle_rshift()
1981 add_range(&ret, min, max); in handle_rshift()
2069 sval_t min, max; in split_comparison_rl() local
2072 max = sval_type_max(rl_type(left_orig)); in split_comparison_rl()
2082 left_true = remove_range(left_orig, rl_max(right_orig), max); in split_comparison_rl()
2089 right_false = remove_range(right_orig, add_one(rl_max(left_orig)), max); in split_comparison_rl()
2094 left_true = remove_range(left_orig, add_one(rl_max(right_orig)), max); in split_comparison_rl()
2099 right_false = remove_range(right_orig, rl_max(left_orig), max); in split_comparison_rl()
2119 left_false = remove_range(left_orig, rl_max(right_orig), max); in split_comparison_rl()
2122 right_true = remove_range(right_orig, add_one(rl_max(left_orig)), max); in split_comparison_rl()
2134 left_false = remove_range(left_orig, add_one(rl_max(right_orig)), max); in split_comparison_rl()
2136 right_true = remove_range(right_orig, rl_max(left_orig), max); in split_comparison_rl()