Lines Matching refs:var_info

100 		    !(ssa->var_info[_var].type & MAY_BE_REF)) { \
108 !(ssa->var_info[_var].type & MAY_BE_REF) && \
1090 if (ssa->var_info[src1].has_range) { in zend_inference_calc_range()
1091 *tmp = ssa->var_info[src1].range; in zend_inference_calc_range()
1110 && ssa->var_info[p->sources[0]].has_range in zend_inference_calc_range()
1111 && ssa->var_info[p->sources[0]].range.min > constraint->range.max) { in zend_inference_calc_range()
1124 && ssa->var_info[p->sources[0]].has_range in zend_inference_calc_range()
1125 && ssa->var_info[p->sources[0]].range.max < constraint->range.min) { in zend_inference_calc_range()
1142 ssa->var_info[p->ssa_var].has_range) { in zend_inference_calc_range()
1146 ssa->var_info[p->ssa_var].range.min, in zend_inference_calc_range()
1147 ssa->var_info[p->ssa_var].range.max, in zend_inference_calc_range()
1163 } else if (ssa->var_info[p->sources[0]].has_range) { in zend_inference_calc_range()
1165 *tmp = ssa->var_info[p->sources[0]].range; in zend_inference_calc_range()
1170 } else if (narrowing && ssa->var_info[constraint->min_ssa_var].has_range) { in zend_inference_calc_range()
1171 tmp->underflow = ssa->var_info[constraint->min_ssa_var].range.underflow && tmp->underflow; in zend_inference_calc_range()
1172 … if (!add_will_overflow(ssa->var_info[constraint->min_ssa_var].range.min, constraint->range.min)) { in zend_inference_calc_range()
1173 …tmp->min = MAX(ssa->var_info[constraint->min_ssa_var].range.min + constraint->range.min, tmp->min); in zend_inference_calc_range()
1181 } else if (narrowing && ssa->var_info[constraint->max_ssa_var].has_range) { in zend_inference_calc_range()
1182 … if (!add_will_overflow(ssa->var_info[constraint->max_ssa_var].range.max, constraint->range.max)) { in zend_inference_calc_range()
1183 …tmp->max = MIN(ssa->var_info[constraint->max_ssa_var].range.max + constraint->range.max, tmp->max); in zend_inference_calc_range()
1185 tmp->overflow = ssa->var_info[constraint->max_ssa_var].range.overflow && tmp->overflow; in zend_inference_calc_range()
1193 } else if (narrowing && ssa->var_info[constraint->min_ssa_var].has_range) { in zend_inference_calc_range()
1194 … if (add_will_overflow(ssa->var_info[constraint->min_ssa_var].range.min, constraint->range.min)) { in zend_inference_calc_range()
1198 tmp->underflow = ssa->var_info[constraint->min_ssa_var].range.underflow; in zend_inference_calc_range()
1199 tmp->min = ssa->var_info[constraint->min_ssa_var].range.min + constraint->range.min; in zend_inference_calc_range()
1210 } else if (narrowing && ssa->var_info[constraint->max_ssa_var].has_range) { in zend_inference_calc_range()
1211 … if (add_will_overflow(ssa->var_info[constraint->max_ssa_var].range.max, constraint->range.max)) { in zend_inference_calc_range()
1215 tmp->max = ssa->var_info[constraint->max_ssa_var].range.max + constraint->range.max; in zend_inference_calc_range()
1216 tmp->overflow = ssa->var_info[constraint->max_ssa_var].range.overflow; in zend_inference_calc_range()
1227 if (ssa->var_info[p->sources[i]].has_range) { in zend_inference_calc_range()
1229 tmp->underflow |= ssa->var_info[p->sources[i]].range.underflow; in zend_inference_calc_range()
1230 tmp->min = MIN(tmp->min, ssa->var_info[p->sources[i]].range.min); in zend_inference_calc_range()
1231 tmp->max = MAX(tmp->max, ssa->var_info[p->sources[i]].range.max); in zend_inference_calc_range()
1232 tmp->overflow |= ssa->var_info[p->sources[i]].range.overflow; in zend_inference_calc_range()
1608 ssa->var_info[var].has_range = 1; in zend_inference_init_range()
1609 ssa->var_info[var].range.underflow = underflow; in zend_inference_init_range()
1610 ssa->var_info[var].range.min = min; in zend_inference_init_range()
1611 ssa->var_info[var].range.max = max; in zend_inference_init_range()
1612 ssa->var_info[var].range.overflow = overflow; in zend_inference_init_range()
1616 static bool zend_inference_widening_meet(zend_ssa_var_info *var_info, zend_ssa_range *r) in zend_inference_widening_meet() argument
1618 if (!var_info->has_range) { in zend_inference_widening_meet()
1619 var_info->has_range = 1; in zend_inference_widening_meet()
1622 var_info->range.underflow || in zend_inference_widening_meet()
1623 r->min < var_info->range.min) { in zend_inference_widening_meet()
1628 var_info->range.overflow || in zend_inference_widening_meet()
1629 r->max > var_info->range.max) { in zend_inference_widening_meet()
1633 if (var_info->range.min == r->min && in zend_inference_widening_meet()
1634 var_info->range.max == r->max && in zend_inference_widening_meet()
1635 var_info->range.underflow == r->underflow && in zend_inference_widening_meet()
1636 var_info->range.overflow == r->overflow) { in zend_inference_widening_meet()
1640 var_info->range = *r; in zend_inference_widening_meet()
1649 if (zend_inference_widening_meet(&ssa->var_info[var], &tmp)) { in zend_ssa_range_widening()
1657 static bool zend_inference_narrowing_meet(zend_ssa_var_info *var_info, zend_ssa_range *r) in zend_inference_narrowing_meet() argument
1659 if (!var_info->has_range) { in zend_inference_narrowing_meet()
1660 var_info->has_range = 1; in zend_inference_narrowing_meet()
1663 !var_info->range.underflow && in zend_inference_narrowing_meet()
1664 var_info->range.min < r->min) { in zend_inference_narrowing_meet()
1665 r->min = var_info->range.min; in zend_inference_narrowing_meet()
1668 !var_info->range.overflow && in zend_inference_narrowing_meet()
1669 var_info->range.max > r->max) { in zend_inference_narrowing_meet()
1670 r->max = var_info->range.max; in zend_inference_narrowing_meet()
1678 if (var_info->range.min == r->min && in zend_inference_narrowing_meet()
1679 var_info->range.max == r->max && in zend_inference_narrowing_meet()
1680 var_info->range.underflow == r->underflow && in zend_inference_narrowing_meet()
1681 var_info->range.overflow == r->overflow) { in zend_inference_narrowing_meet()
1685 var_info->range = *r; in zend_inference_narrowing_meet()
1694 if (zend_inference_narrowing_meet(&ssa->var_info[var], &tmp)) { in zend_ssa_range_narrowing()
1755 && !(ssa->var_info[j].type & MAY_BE_REF)) { in zend_infer_ranges_warmup()
1767 ssa->var_info[j].has_range && in zend_infer_ranges_warmup()
1776 if (tmp.min == ssa->var_info[j].range.min && in zend_infer_ranges_warmup()
1777 tmp.max == ssa->var_info[j].range.max) { in zend_infer_ranges_warmup()
1782 } else if (tmp.min == ssa->var_info[j].range.min && in zend_infer_ranges_warmup()
1783 tmp.max == ssa->var_info[j].range.max + 1 && in zend_infer_ranges_warmup()
1794 } else if (tmp.max == ssa->var_info[j].range.max && in zend_infer_ranges_warmup()
1795 tmp.min == ssa->var_info[j].range.min - 1 && in zend_infer_ranges_warmup()
1812 if (zend_inference_narrowing_meet(&ssa->var_info[j], &tmp)) { in zend_infer_ranges_warmup()
1856 if (ssa->var_info[j].type & MAY_BE_REF) { in zend_infer_ranges()
1868 && !(ssa->var_info[j].type & MAY_BE_REF)) { in zend_infer_ranges()
1878 if (!(ssa->var_info[j].type & MAY_BE_REF)) { in zend_infer_ranges()
1894 if (!ssa->var_info[j].has_range in zend_infer_ranges()
1895 && !(ssa->var_info[j].type & MAY_BE_REF)) { in zend_infer_ranges()
1912 && !(ssa->var_info[j].type & MAY_BE_REF)) { in zend_infer_ranges()
2271 !ssa->var_info[result_var].has_range || in binary_op_result_type()
2272 ssa->var_info[result_var].range.underflow || in binary_op_result_type()
2273 ssa->var_info[result_var].range.overflow) { in binary_op_result_type()
2298 !ssa->var_info[result_var].has_range || in binary_op_result_type()
2299 ssa->var_info[result_var].range.underflow || in binary_op_result_type()
2300 ssa->var_info[result_var].range.overflow) { in binary_op_result_type()
2438 ce = ssa->var_info[ssa_op->op1_use].ce; in zend_fetch_prop_info()
2533 zend_ssa_var_info *ssa_var_info = ssa->var_info; in _zend_update_type_info()
2979 …tmp |= ssa->var_info[ssa_op->op1_def].type & (MAY_BE_ARRAY_PACKED|MAY_BE_ARRAY_NUMERIC_HASH|MAY_BE… in _zend_update_type_info()
3791 } else if (ssa_op->op1_use >= 0 && !ssa->var_info[ssa_op->op1_use].is_instanceof) { in _zend_update_type_info()
3792 ce = ssa->var_info[ssa_op->op1_use].ce; in _zend_update_type_info()
3847 tmp = ssa->var_info[ssa_op->op1_use].type; in _zend_update_type_info()
3855 tmp = ssa->var_info[ssa_op->op2_use].type; in _zend_update_type_info()
3865 tmp = ssa->var_info[next_ssa_op->op1_use].type; in _zend_update_type_info()
4183 zend_ssa_var_info *ssa_var_info = ssa->var_info; in zend_infer_types_ex()
4327 type = ssa->var_info[ssa_op->result_def].type; in can_convert_to_double()
4420 type = ssa->var_info[phi->ssa_var].type; in can_convert_to_double()
4448 if ((ssa->var_info[v].type & (MAY_BE_REF | MAY_BE_ANY | MAY_BE_UNDEF)) != MAY_BE_LONG) continue; in zend_type_narrowing()
4461 ssa->var_info[v].use_as_double = 1; in zend_type_narrowing()
4465 ssa->var_info[i].type &= ~MAY_BE_ANY; in zend_type_narrowing()
4589 if (!recursive && ssa_op && info->ssa.var_info && in zend_func_return_info()
4591 info->ssa.var_info[ssa_op->op1_use].recursive) { in zend_func_return_info()
4612 if (ssa_op && info->ssa.var_info && in zend_func_return_info()
4614 info->ssa.var_info[ssa_op->op1_use].ce) { in zend_func_return_info()
4615 arg_ce = info->ssa.var_info[ssa_op->op1_use].ce; in zend_func_return_info()
4616 arg_is_instanceof = info->ssa.var_info[ssa_op->op1_use].is_instanceof; in zend_func_return_info()
4655 } else if (ssa_op && info->ssa.var_info && ssa_op->op1_use >= 0) { in zend_func_return_info()
4656 if (info->ssa.var_info[ssa_op->op1_use].has_range) { in zend_func_return_info()
4659 tmp_range = info->ssa.var_info[ssa_op->op1_use].range; in zend_func_return_info()
4662 if (info->ssa.var_info[ssa_op->op1_use].range.underflow) { in zend_func_return_info()
4666 tmp_range.min = MIN(tmp_range.min, info->ssa.var_info[ssa_op->op1_use].range.min); in zend_func_return_info()
4668 if (info->ssa.var_info[ssa_op->op1_use].range.overflow) { in zend_func_return_info()
4672 tmp_range.max = MAX(tmp_range.max, info->ssa.var_info[ssa_op->op1_use].range.max); in zend_func_return_info()
4823 } else if (ssa->var_info[var].type & MAY_BE_REF) { in zend_mark_cv_references()
4833 …ssa->var_info[var].type |= MAY_BE_RC1 | MAY_BE_RCN | MAY_BE_REF | MAY_BE_ANY | MAY_BE_ARRAY_KEY_AN… in zend_mark_cv_references()
4838 if (!(ssa->var_info[p->ssa_var].type & MAY_BE_REF)) { in zend_mark_cv_references()
4850 if (!(ssa->var_info[op->op1_def].type & MAY_BE_REF)) { in zend_mark_cv_references()
4860 if (!(ssa->var_info[op->op2_def].type & MAY_BE_REF)) { in zend_mark_cv_references()
4865 if (!(ssa->var_info[op->result_def].type & MAY_BE_REF)) { in zend_mark_cv_references()
4881 if (!ssa->var_info) { in zend_ssa_inference()
4882 ssa->var_info = zend_arena_calloc(arena, ssa->vars_count, sizeof(zend_ssa_var_info)); in zend_ssa_inference()
4884 ssa_var_info = ssa->var_info; in zend_ssa_inference()
5202 const zend_ssa_var_info *var_info = ssa->var_info + ssa_op->op1_use; in zend_may_throw_ex() local
5203 const zend_class_entry *ce = var_info->ce; in zend_may_throw_ex()
5205 if (var_info->is_instanceof in zend_may_throw_ex()